扫码一下
查看教程更方便
tkinter 不同的控件具有非常相似的选项、属性或方法,因此从本节开始,我们可以快速学习。
radiobuton
单选按钮是众多按钮中的一个。它列出的选择中有多个选项,但用户只能选择其中一个。与之前介绍的控件相同,单选按钮可以包含文本或图像,并且可以将回调函数或方法绑定给它。按下该按钮时,将自动触发回调函数。
import tkinter as tk
app = tk.tk()
app.geometry('150x100')
radiovalue = tk.intvar()
rdioone = tk.radiobutton(app, text='january',
variable=radiovalue, value=1)
rdiotwo = tk.radiobutton(app, text='febuary',
variable=radiovalue, value=2)
rdiothree = tk.radiobutton(app, text='march',
variable=radiovalue, value=3)
rdioone.grid(column=0, row=0)
rdiotwo.grid(column=0, row=1)
rdiothree.grid(column=0, row=2)
app.mainloop()
以上单选按钮示例的结果如下,
radiovalue = tk.intvar()
就像多选按钮一样,单选按钮需要将特定数据类型的值与它们相关联。
rdioone = tk.radiobutton(app, text='january',
variable=radiovalue, value=1)
rdiotwo = tk.radiobutton(app, text='febuary',
variable=radiovalue, value=2)
rdiothree = tk.radiobutton(app, text='march',
variable=radiovalue, value=3)
这里创建了带有 january,febuary 和 march 文本的按钮。同一组中的单选按钮必须具有唯一值。
小思考
想一下,如果它们有重复数值的话,会发生什么?
如上例所示,同一组中的单选按钮共享相同的变量 radiovalue,并且使用 value 选项赋给了不同的数值。
所选择的单选按钮的值自动地更新变量 radiovalue,它是一个 tk.intvar。
标签文本在以下示例代码中自动显示所选按钮的值。
import tkinter as tk
app = tk.tk()
app.geometry('200x100')
radiovalue = tk.intvar()
rdioone = tk.radiobutton(app, text='january',
variable=radiovalue, value=0)
rdiotwo = tk.radiobutton(app, text='febuary',
variable=radiovalue, value=1)
rdiothree = tk.radiobutton(app, text='march',
variable=radiovalue, value=2)
rdioone.grid(column=0, row=0, sticky="w")
rdiotwo.grid(column=0, row=1, sticky="w")
rdiothree.grid(column=0, row=2, sticky="w")
labelvalue = tk.label(app, textvariable=radiovalue)
labelvalue.grid(column=2, row=0, sticky="e", padx=40)
app.mainloop()
labelvalue
标签的 textvariable
和单选按钮的选项 variable
是一样的,从而使标签的文字可以自动更新。
默认的单选按钮指示是一个圆形孔,内部有空白区域,但也可以用包含文本或图像的框来替换它。未选中单选按钮时会弹出文本框,按下时会出现凹陷。
rdioone = tk.radiobutton(app, text='i am raised',
variable=radiovalue, value=1,
indicatoron = 0)
indicatoron 是启用或关闭按钮圆孔指示器的选项。indicatoron =indictor on
。
它与 tkinter 多选按钮中如何设置按钮回调函数完全相同,使用选项 command =
来完成。