11 Radiobutton组件
Tkinter 是 Python 的标准图形用户界面库,它提供了一个 Radiobutton 控件,用于在一组选项中让用户选择一个选项。Radiobutton 通常用于提供一组互斥的选项,用户只能选择其中一个。
Radiobutton 组件基础
Radiobutton 控件通常与一个变量(通常是 IntVar
或 StringVar
)一起使用,该变量保存当前选中的值。当一个 Radiobutton 被选中时,它会更新这个变量的值。
Radiobutton 组件属性
variable
: 与 Radiobutton 关联的变量,用于存储当前选中的值。value
: 当 Radiobutton 被选中时,variable
变量将被设置的值。text
: Radiobutton 旁边显示的文本。command
: 当 Radi按钮被选中时,会调用的回调函数。indicatoron
: 控制 Radiobutton 的指示器(圆圈)是否显示。onvalue
和offvalue
: 分别设置变量的值当 Radiobutton 被选中和未被选中时。
两种形状的 Radiobutton
圆形 Radiobutton
圆形 Radiobutton 是 Tkinter 默认的样式。下面是一个创建圆形 Radiobutton 的示例代码:
import tkinter as tk # 导入tkinter模块,并给它一个简短的别名tk
# 创建主窗口
root = tk.Tk() # 创建Tkinter的主窗口实例
root.title("圆形 Radiobutton 示例") # 设置窗口标题为“圆形 Radiobutton 示例”
# 创建一个 StringVar 对象,用于存储 Radiobutton 的值
radio_var = tk.StringVar() # 创建一个StringVar对象,它用于存储Radiobutton的值,并且当值改变时可以通知界面更新
# 创建圆形 Radiobutton 控件
radio1 = tk.Radiobutton(root, text="选项 1", variable=radio_var, value="1") # 创建第一个Radiobutton,设置文本为“选项 1”,与radio_var变量关联,选中时变量值为"1"
radio1.pack() # 使用pack布局管理器将第一个Radiobutton添加到窗口中
radio2 = tk.Radiobutton(root, text="选项 2", variable=radio_var, value="2") # 创建第二个Radiobutton,设置文本为“选项 2”,与radio_var变量关联,选中时变量值为"2"
radio2.pack() # 使用pack布局管理器将第二个Radiobutton添加到窗口中
radio3 = tk.Radiobutton(root, text="选项 3", variable=radio_var, value="3") # 创建第三个Radiobutton,设置文本为“选项 3”,与radio_var变量关联,选中时变量值为"3"
radio3.pack() # 使用pack布局管理器将第三个Radiobutton添加到窗口中
# 启动事件循环
root.mainloop() # 进入Tkinter的事件循环,使窗口保持打开状态并响应事件
矩形 Radiobutton
使用 tk.Radiobutton
控件创建看起来像矩形的 Radiobutton。关键在于使用 indicatoron=False
参数隐藏了默认的圆圈指示器,从而使得 Radiobutton 控件看起来更接近矩形形状。
import tkinter as tk # 导入tkinter模块,并给它一个简短的别名tk
# 创建主窗口
root = tk.Tk() # 创建Tkinter的主窗口实例
root.title("矩形 Radiobutton 示例") # 设置窗口标题为“矩形 Radiobutton 示例”
# 创建一个 StringVar 对象,用于存储 Radiobutton 的值
radio_var = tk.StringVar() # 创建一个StringVar对象,它用于存储Radiobutton的值,并且当值改变时可以通知界面更新
# 创建 Radiobutton 控件
# 第一个参数是父容器,这里是 root
# text 参数是显示的文本
# variable 参数是与 Radiobutton 关联的变量
# value 参数是当这个 Radiobutton 被选中时,variable 变量的值
# indicatoron 参数设置为 False,隐藏默认的圆圈指示器
radio1 = tk.Radiobutton(root, text="选项 1", variable=radio_var, value="1", indicatoron=False) # 创建第一个Radiobutton,设置文本为“选项 1”,与radio_var变量关联,选中时变量值为"1",隐藏圆圈指示器
radio1.pack() # 使用pack布局管理器将第一个Radiobutton添加到窗口中
radio2 = tk.Radiobutton(root, text="选项 2", variable=radio_var, value="2", indicatoron=False) # 创建第二个Radiobutton,设置文本为“选项 2”,与radio_var变量关联,选中时变量值为"2",隐藏圆圈指示器
radio2.pack() # 使用pack布局管理器将第二个Radiobutton添加到窗口中
radio3 = tk.Radiobutton(root, text="选项 3", variable=radio_var, value="3", indicatoron=False) # 创建第三个Radiobutton,设置文本为“选项 3”,与radio_var变量关联,选中时变量值为"3",隐藏圆圈指示器
radio3.pack() # 使用pack布局管理器将第三个Radiobutton添加到窗口中
# 启动事件循环
root.mainloop() # 进入Tkinter的事件循环,使窗口保持打开状态并响应事件