我正在尝试使用Radiobuttons来允许用户选择三个选项之一。但是,我似乎无法从用户的选择中获得价值。我对python很新,我的策略可能完全不正确。这两种方案的方法是否正确?感谢您提供任何建议!
def GetGroup():
groupselect=tk.Tk()
#select group
group=IntVar()
group.set(0)
print(group)
Label(groupselect,text="Select Group").grid(row=0,column=1)
Radiobutton(groupselect,text="Group 1",width=20,variable=group,value=1,state=NORMAL).grid(row=1,column=1)
Radiobutton(groupselect,text="Group 2",width=20,variable=group,value=2,state=NORMAL).grid(row=2,column=1)
Radiobutton(groupselect,text="Group 3",width=20,variable=group,value=3,state=NORMAL).grid(row=3,column=1)
group=group.get()
Button(groupselect,text="Submit",width=20,command=lambda:GetGroup2(group)).grid(row=4,column=1)
def GetGroup2(group):
if group==1:
ma_group="group1"
if group==2:
ma_group="group2"
if group==3:
ma_group="group3"
if group==0:
ma_group="group did not update"
print(ma_group)
答案 0 :(得分:0)
不要在Tkinter中覆盖一些变量
group=group.get()
因为Tkinter有时会在窗口小部件中不是一次性地赋予变量,而是在需要它的时候 - 它被称为"lazy evaluation"
由于group
与Radiobutton
属于同一个函数,因此Radiobutton
(如variable
)将使用新的group
- 而非{{1}的原始引用}}
工作示例:
IntVar