文章目录
- 前言
- 一、Checkbutton使用实例
- 二、Radiobutton使用实例
- 三、LabelFrame使用实例
- 四、运行
- 五、结语
前言
本文向大家介绍Checkbutton、Radiobutton和LabelFrame组件,Checkbutton组件是常见的多选按钮,而Radiobutton则是单选按钮;LabelFrame可以用来对Checkbutton或是Radiobutton进行美化。
一、Checkbutton使用实例
1、创建一个单选框:
from tkinter import *
window = Tk()
v = IntVar()
Checkbutton(window,text = "选我试试",variable = v).pack()
Label(window,textvariable = v).pack()
mainloop()
选中后,变量v的值为1,未选中为0,并显示在Label中.
运行结果见图2-1和图2-2.
2、有了以上基础,设计一个多选框:
window = Tk()
v1 = IntVar()
v2 = IntVar()
v3 = IntVar()
v4 = IntVar()
Checkbutton(window,text = "张三",variable = v1).pack(anchor = W)
Label(window,textvariable = v1).pack()
Checkbutton(window,text = "李四",variable = v2).pack(anchor = W)
Label(window,textvariable = v2).pack()
Checkbutton(window,text = "王麻子",variable = v3).pack(anchor = W)
Label(window,textvariable = v3).pack()
Checkbutton(window,text = "王二狗",variable = v4).pack(anchor = W)
Label(window,textvariable = v4).pack()
mainloop()
选中后,变量发生改变,显示在Label中.
运行结果见图2-3和图2-4.
二、Radiobutton使用实例
Radiobutton组件跟Chebutton组件用法基本一致,唯一不同的是Radiobutton实现的是"单选"的效果,且同一组内所有的Radiobutton只能共享一个variable选项,并且需要设置不同的value选项值:
from tkinter import *
window = Tk()
v = IntVar()
Radiobutton(window,text = "one",variable = v,value = 1).pack()
Radiobutton(window,text = "two",variable = v,value = 2).pack()
Radiobutton(window,text = "three",variable = v,value = 3).pack()
Label(window,textvariable = v).pack()
mainloop()
运行结果见图2-5.
三、LabelFrame使用实例
LabelFrame组件是Frame框架的进化版,简单的说是添加了Label的Frame,我们可以利用它让Checkbutton或Radiobutton更好看。
设计一个数字列表,供用户选择,代码如下
from tkinter import *
window = Tk()
group = LabelFrame(window,text = "数字列表")
group.pack()
NUMBER = [("one",1),("two",2),("three",3),("four",4)]
v = IntVar()
v.set(1)
for a,num in NUMBER:
b = Radiobutton(group,text = a,variable = v,value = num)
b.pack(anchor = W)
Label(group,textvariable = v).pack()
mainloop()
运行结果如图2-6,系统建立了一个框架并命名为"数字列表"。
注意:这里的Radiobutton是长在"group"中,而不是"window"中。
四、运行
单击run->Run Module运行,Checkbutton显示结果如下:
图2-1
图2-2Checkbutton多选框未选中时显示结果如下:
图2-3Checkbutton多选框选中后显示结果如下:
图2-4Radiobutton显示结果如下:
图2-5LabelFrame显示结果如下:
图2-6