Tkinter 教程 - 单选按钮
Jinku Hu
2024年2月15日
在前几节中,我们已经学过标签,按钮和多选按钮。Tkinter 不同的控件具有非常相似的选项、属性或方法,因此从本节开始,我们可以快速学习。
radiobuton
单选按钮是众多按钮中的一个。它列出的选择中有多个选项,但用户只能选择其中一个。与之前介绍的控件相同,单选按钮可以包含文本或图像,并且可以将回调函数或方法绑定给它。按下该按钮时,将自动触发回调函数。
Tkinter Radiobutton 单选按钮基本示例
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
文本的按钮。同一组中的单选按钮必须具有唯一值。
小思考
想一下,如果它们有重复数值的话,会发生什么?
Tkinter 单选按钮-获取值
如上例所示,同一组中的单选按钮共享相同的变量 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
是一样的,从而使标签的文字可以自动更新。
更改 Tkinter 单选控件指示类型
默认的单选按钮指示是一个圆形孔,内部有空白区域,但也可以用包含文本或图像的框来替换它。未选中单选按钮时会弹出文本框,按下时会出现凹陷。
rdioOne = tk.Radiobutton(
app, text="I am raised", variable=radioValue, value=1, indicatoron=0
)
indicatoron
是启用或关闭按钮圆孔指示器的选项。indicatoron
=indictor on
。
绑定 Tkinter Radiobutton 回调函数
它与 [Tkinter 多选按钮](/zh/tutorial/tkinter-tutorial/tkinter-checkbutton/#Tkinter Checkbutton Callback Function Binding)中如何设置按钮回调函数完全相同,使用选项 command =
来完成。