Tkinter 教程 - 单选按钮

Jinku Hu 2024年2月15日
  1. Tkinter Radiobutton 单选按钮基本示例
  2. Tkinter 单选按钮-获取值
  3. 更改 Tkinter 单选控件指示类型
  4. 绑定 Tkinter Radiobutton 回调函数
Tkinter 教程 - 单选按钮

在前几节中,我们已经学过标签,按钮和多选按钮。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()

以上单选按钮示例的结果如下,

Tkinter Checkbutton 基本示例

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)

这里创建了带有 JanuaryFebuaryMarch 文本的按钮。同一组中的单选按钮必须具有唯一值。

小思考
想一下,如果它们有重复数值的话,会发生什么?

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 Radiobutton_get 值

更改 Tkinter 单选控件指示类型

默认的单选按钮指示是一个圆形孔,内部有空白区域,但也可以用包含文本或图像的框来替换它。未选中单选按钮时会弹出文本框,按下时会出现凹陷。

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 = 来完成。

作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook