|
| 1 | +#!/usr/bin/env python |
| 2 | +#coding:utf-8 |
| 3 | +# version:python2.7.15 |
| 4 | +# windows 10 |
| 5 | +# reference: python gui cookbook |
| 6 | +import Tkinter as tk |
| 7 | +import ttk |
| 8 | +import ScrolledText as scrolledtext |
| 9 | + |
| 10 | +# 创建主窗口 |
| 11 | +win = tk.Tk() |
| 12 | +win.title("Python gui") |
| 13 | + |
| 14 | +# 创建框架方便布局 |
| 15 | +monty = ttk.LabelFrame(win, text=" monty python") |
| 16 | +monty.grid(column=0, row=0) |
| 17 | + |
| 18 | +# 按钮回调函数 |
| 19 | +def ClickMe(): |
| 20 | + action.configure(text="Hello " + name.get() + ' ' + numberChosen.get()) |
| 21 | + |
| 22 | +# 创建按钮 |
| 23 | +action = ttk.Button(monty, text="Click Me!", command=ClickMe) |
| 24 | +action.grid(column=2, row=1, padx=8, pady=4) |
| 25 | + |
| 26 | +# 创建标签 |
| 27 | +ttk.Label(monty, text="Enter a name:").grid(column=0, row=0, padx=8, pady=4) |
| 28 | +ttk.Label(monty, text="Choose a number:").grid(column=1, row=0, padx=8, pady=4) |
| 29 | + |
| 30 | +# 创建输入框 |
| 31 | +name = tk.StringVar() |
| 32 | +nameEntered = ttk.Entry(monty, width=12, textvariable=name) |
| 33 | +nameEntered.focus() #place a cursor |
| 34 | +nameEntered.grid(column=0, row=1, padx=8, pady=4) |
| 35 | + |
| 36 | +# 创建下拉菜单 |
| 37 | +number = tk.StringVar() |
| 38 | +numberChosen = ttk.Combobox(monty, width=12, textvariable=number) |
| 39 | +# numberChosen = ttl.Combobox(monty, width=12, textvariable=number, state='readonly') # 禁止自己填写 |
| 40 | +numberChosen["values"] = [1, 2, 4, 42, 100] |
| 41 | +numberChosen.grid(column=1, row=1, padx=8, pady=4) |
| 42 | +numberChosen.current(1) #选择默认value |
| 43 | + |
| 44 | +def _spin(): |
| 45 | + value = spin.get() |
| 46 | + scr.insert(tk.INSERT, value+'\n') |
| 47 | + |
| 48 | +# 创建选值框 |
| 49 | +# spin = tk.Spinbox(monty, from_=0, to=10, width=5, bd=8, command=_spin) |
| 50 | +spin = tk.Spinbox(monty, values=(1,2,4,8,16), width=5, bd=8, command=_spin, relief=tk.GROOVE) |
| 51 | +spin2 = tk.Spinbox(monty, values=(1,2,4,8,16), width=5, bd=8, command=_spin, relief=tk.SOLID) |
| 52 | +spin3 = tk.Spinbox(monty, values=(1,2,4,8,16), width=5, bd=8, command=_spin, relief=tk.RIDGE) |
| 53 | +spin.grid(column=0, row=2) |
| 54 | +spin2.grid(column=1, row=2) |
| 55 | +spin3.grid(column=2, row=2) |
| 56 | + |
| 57 | +# 创建滚动文本框,定义长宽 |
| 58 | +scrolW = 30 |
| 59 | +scrolH = 3 |
| 60 | +# wrap=tk.WORD防止单词在行末被分割,直接换到下一行 |
| 61 | +scr = scrolledtext.ScrolledText(monty, width=scrolW, height=scrolH, wrap=tk.WORD) |
| 62 | +# 扩充所占单元格布局,合并3格 |
| 63 | +scr.grid(column=0, columnspan=3, sticky="WE") |
| 64 | + |
| 65 | +win.mainloop() |
0 commit comments