扫码一下
查看教程更方便
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 =
来完成。