从Radiobutton中提取值

时间:2014-06-19 14:37:42

标签: python tkinter radio-button

我正在尝试使用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)

1 个答案:

答案 0 :(得分:0)

不要在Tkinter中覆盖一些变量

group=group.get()

因为Tkinter有时会在窗口小部件中不是一次性地赋予变量,而是在需要它的时候 - 它被称为"lazy evaluation"

由于groupRadiobutton属于同一个函数,因此Radiobutton(如variable)将使用新的group - 而非{{1}的原始引用}}

工作示例:

IntVar