目录
1. 标签
标签组件可以用来显示图片和文本,通过在文本中添加换行符来控制换行,也可以通过控制组件的大小来自动换行。
from tkinter import *
root = Tk();
laber = Label(root, text="hello world")
laber.pack()
root.mainloop()
2. 框架
框架(Frame)相对于其他组件来说,它只是个容器,因为它没有方法,但是它可以捕获键盘和鼠标的事件来进行回调。
from tkinter import *
root=Tk()
root.title("顶层窗口")
for relief in ["flat", "groove", "raised", "ridge", "solid", "sunken"]:
#定义一个框架
f=Frame(root, borderwidth=2, relief=relief)
#定义一个标签
Label(f, text=relief, width=10).pack(side=LEFT)
#显示框架
f.pack(side=LEFT, padx=5, pady=5)
root.mainloop()
3. 按钮
按钮(Button)可以被认为是可以捕获键盘和鼠标事件,并且做出相关反应的标签。可以为每一个按钮绑定一个回调程序,用于处理不同的需求。按钮可以禁用,禁用之后的按钮不能进行单击等任何操作。如果将按钮放进TAB群中,就可以使用TAB键来进行跳转和定位。
from tkinter import *
root=Tk()
root.title("顶层窗口")
Button(root, text="禁用", state="disabled").pack(side=LEFT)
Button(root, text="取消").pack(side=LEFT)
Button(root, text="确定").pack(side=LEFT)
#绑定回调函数为退出
Button(root, text="退出", command=root.quit()).pack(side=RIGHT)
root.mainloop()
4. 输入框
一个GUI程序,接收用户的输入几乎是必不可少的。输入框(Entry)组件就是用来接收用户输入的最基本的组件。可以为其设置默认值,也可以禁止用户输入。如果禁止了,用户就不能改变输入框中的值了。当用户输入的内容一行显示不下的时候,输入框会自动生成滚动条。
from tkinter import *
root=Tk()
root.title("顶层窗口")
#定义一个框架
f1=Frame(root)
Label(f1, text="标准输入框1:").pack(side=LEFT, padx=5, pady=10)
#定义输入框的内容
e1=StringVar()
#基本的输入框
Entry(f1, width=50, textvariable=e1).pack(side=LEFT)
#设置输入框默认内容
e1.set("输入框默认内容")
f1.pack();
#定义一个框架
f2=Frame(root)
Label(f2, text="标准输入框2:").pack(side=LEFT, padx=5, pady=10)
#定义输入框的内容
e2=StringVar()
#基本的输入框
Entry(f2, width=50, textvariable=e2, state="disabled").pack(side=LEFT)
#设置输入框默认内容
e2.set("不可修改的内容")
f2.pack()
root.mainloop()
5. 单选按钮
单选按钮(Radiobutton)是一组排他性的选择框,只能从该组中选择一个选项,当选择了其中一项之后便会取消其他选项的选择。与按钮组件一样,单选按钮可以使用图像或者文本。要想使用单选按钮,必须将这一组单选按钮与一个相同的变量关联起来,由用户为这个变量选择不同的值。
from tkinter import *
root=Tk()
root.title("顶层窗口")
#定义变量
foo = IntVar()
for text, value in [("red", 1), ("green", 2), ("black", 3), ("blue", 4), ("yellow", 5)]:
r = Radiobutton(root, text=text, value=value, variable=foo)
r.pack(anchor=W)
#设置当前按钮选择为2
foo.set(2)
root.mainloop()
6. 复选按钮
与单选按钮相对的是复选按钮(Checkbutton)。复选按钮之间没有互斥作用,可以一次选择多个。同样的,每一个按钮都需要跟一个变量相关联,并且每一个复选按钮关联的变量都是不一样的。如果像单选按钮一样,关联的是同一个按钮,则当选中其中一个的时候,会将所有的按钮都选上。可以给每一个复选按钮绑定一个回调,当该选项被选择的时候,执行该回调。
from tkinter import *
root=Tk()
root.title("顶层窗口")
for text, value in [("red", 1), ("green", 2), ("black", 3), ("blue", 4), ("yellow", 5)]:
# 定义变量
foo = IntVar()
c = Checkbutton(root, text=text, variable=foo)
c.pack(anchor=W)
root.mainloop()
7. 消息
很多时候,我们需要给用户发送消息,一般内容较多,如帮助信息等。消息(Message)控件提供了显示多行文本的方法,并且可以设置字体和背景色。Message组件提供了一个标准的方法,可以非常方便地实现这项功能。
from tkinter import *
root=Tk()
root.title("顶层窗口")
Message(root, text="因为懂得,所以慈悲!", bg="blue", fg="ivory", relief="groove").pack(padx=10, pady=10)
root.mainloop()
8. 列表框
列表框组件可以让用户选择其中一项。
from tkinter import *
root=Tk()
root.title("顶层窗口")
l = Listbox(root, width=15)
l.pack()
for item in ["one", "two", "three", "four"]:
l.insert(END, item)
root.mainloop()
9. 滚动条
滚动条(Scrollbar)组件可以添加至任何一个组件,一些组件在界面显示不下的时候会自动添加滚动条,但是可以使用滚动条组件来对其进行控制。
from tkinter import *
root=Tk()
root.title("顶层窗口")
#设定一个列表
l = Listbox(root, height=16, width=15)
#设定一个滚动条,并绑定一个回调
s = Scrollbar(root, command=l.yview)
l.configure(yscrollcommand=s.set)
l.pack(side=LEFT)
s.pack(side=LEFT, fill=Y)
for item in range(20):
l.insert(END, item)
root.mainloop()
10.总结