Tkinter是Python的GUI设计的良好组件。下面简单记录他们的功能。
1、Label and Button
Label主要用于展示内容,其上可以配置颜色,放置字符串(str,textvariable)等操作。
Button是用于触发事件,在点击完Button之后,可以在command中设置其激发的函数,完成进一步的功能。
import tkinter as tk
#创建窗口
windows = tk.Tk()
windows.title('my windows')
windows.geometry('300x500') #高度和宽度
var = tk.StringVar()
l = tk.Label(windows,textvariable = var,bg = 'red',width = 15,height = 2) #这个Label放在windows上
l.pack() #安置在正确的位置上
#放个Button,被点击时,就会执行hit_me函数
on_hit = False
def hit_me():
global on_hit
if on_hit == False:
on_hit = True
var.set('你好锦峰哥')
else:
on_hit = False
var.set('再见锦峰哥')
b = tk.Button(windows,text = '锦峰哥哥来玩啊',width = 20,height = 2,command = hit_me)
b.pack()
#启动窗口
windows.mainloop()
在这个例子中,我们可以显示出点击Button之后,Label中的对应变化。
在这里插入图片描述
2、Entry and Text
Entry是一行文本框,如下图所示。
它的函数参数有:放在哪个组件之上,show = ?.
如果show = ‘None’,则明文显示所有内容;如果show = ‘x’,则输入的内容以x展示到Entry中。
Text是一个文本框区,我们也可以设置其width和height,对于它可以使用insert(ways,内容),其中,ways可以为’insert’和’end’两种模式,insert是在Text光标所在地方的后面插入指定字符串,而end是在末尾插入指定字符串。
#Entry是一行输入框,Text是一个文本区
import tkinter as tk
window = tk.Tk()
window.title('0506')
window.geometry('200x200')
#param : 放在哪儿,是否明文显示
e = tk.Entry(window,show = '*')# show = '*'表示显示成*
e.pack()
def insert_point():
var = e.get()
t.insert('insert',var) #插入到t的指针指到的位置
def insert_end():
var = e.get()
t.insert('end',var) #插入到t的末尾
b1 = tk.Button(window,text = 'insert point',width = 15,height = 2,command = insert_point)
b1.pack()
b2 = tk.Button(window,text = 'insert to end',width = 15,height = 2,command = insert_end)
b2.pack()
#Text
t = tk.Text(window,height = 2)
t.pack()
window.mainloop()
3、Listbox
Listbox是一个可选项的集合,我们可以选择Listbox中的项目。Listbox项目可以通过set设定,也可以通过insert插入。
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('200x200')
var1 = tk.StringVar()
l = tk.Label(window,width = 15,height = 1,bg = 'yellow',textvariable = var1)
l.pack()
def press():
global var1
tval = lb.get(lb.curselection())
var1.set(tval) #textvariable的值要通过set修改
var2 = tk.StringVar()
lb = tk.Listbox(window,width = 15,height = 6);
lb.pack()
items = [1,2,3,4,5,6]
for u in items:
lb.insert('end',u)
b1 = tk.Button(window,width = 15,height = 2,text = 'print your option',command = press)
b1.pack()
window.mainloop()