Python Tkinter如何获取单选按钮组的IntVar值?
解决Tkinter单选按钮无法用get()获取选中值的问题
你的问题核心是错误地使用了普通数字作为Radiobutton的variable参数——Tkinter的单选按钮要求variable必须是它自带的变量类型(比如IntVar或StringVar),普通数字不具备get()方法,所以没法获取选中状态。
修正步骤及完整示例
- 先为每组单选按钮创建对应的Tkinter变量
- 将Radiobutton的
variable参数替换为这些变量 - 之后就可以通过
变量.get()获取选中的值了
完整代码示例:
from tkinter import Tk, Radiobutton, Button mainframe = Tk() # 为两组单选按钮分别创建IntVar变量 group1_var = IntVar() group2_var = IntVar() # 绑定变量到对应的单选按钮组 radio1 = Radiobutton(mainframe, text='rbutton1', value=1, variable=group1_var) radio2 = Radiobutton(mainframe, text='rbutton2', value=2, variable=group1_var) radio3 = Radiobutton(mainframe, text='rbutton3', value=3, variable=group2_var) radio4 = Radiobutton(mainframe, text='rbutton4', value=4, variable=group2_var) # 定义获取选中值的函数 def get_selected_values(): selected_group1 = group1_var.get() selected_group2 = group2_var.get() print(f"第一组选中的单选按钮值:{selected_group1}") print(f"第二组选中的单选按钮值:{selected_group2}") # 布局组件 radio1.pack(pady=2) radio2.pack(pady=2) radio3.pack(pady=2) radio4.pack(pady=2) Button(mainframe, text="查看选中项", command=get_selected_values).pack(pady=5) mainframe.mainloop()
额外说明
- 同一组的单选按钮必须绑定同一个变量,这样才能实现“单选”逻辑(同一组内只能选中一个)
- 如果需要设置默认选中项,可以在创建变量后用
group1_var.set(1)这种方式指定初始值
内容的提问来源于stack exchange,提问作者PsyOrc
相关产品推荐
相关产品推荐

