【问题标题】:python tkinter: how i can get the IntVar() for radiobutton when they are in groupspython tkinter:当它们成组时,我如何获得单选按钮的 IntVar()
【发布时间】:2018-09-05 13:18:30
【问题描述】:

我有以下问题,我需要检查哪个单选按钮处于活动状态并获取它的值,例如...

radio1 = Radiobutton(mainframe,text='rbutton1', value=1, variable=1)
radio2 = Radiobutton(mainframe,text='rbutton2', value=2, variable=1)
radio3 = Radiobutton(mainframe,text='rbutton3', value=3, variable=2)
radio4 = Radiobutton(mainframe,text='rbutton4', value=4, variable=2)

这样我可以在每个组中选择 1 个单选按钮,但我不能使用 get() 方法来检查选择了哪一个

但是当我使用这个例子时......

var = IntVar()
radio1 = Radiobutton(mainframe,text='rbutton1', value=1, variable=var)
radio2 = Radiobutton(mainframe,text='rbutton2', value=2, variable=var)
radio3 = Radiobutton(mainframe,text='rbutton3', value=3, variable=var)
radio4 = Radiobutton(mainframe,text='rbutton4', value=4, variable=var)

我可以使用 get() 方法,但我可以同时选择所有按钮,这不是我需要的,每个组只能选择一个单选按钮

感谢您的帮助

【问题讨论】:

  • 我无法复制这一点,当您使用IntVar 时,所有小部件都链接到它,一次只能激活一个链接到同一变量的RadioButton。如果您需要多个组,则创建多个 IntVar's

标签: python python-3.x tkinter radio-button


【解决方案1】:

您不能使用普通整数作为variable 选项的值。好吧,正如您的代码所示,您可以,但无法将值取回。

您必须提供 tkinter 变量之一作为 variable 选项的值。具有相同variable 的所有单选按钮将被捆绑在一个组中。如果你想要两个组,你将需要使用两个变量。此外,您应该将变量初始化为具有允许值之一,否则您的单选按钮可能不会处于您期望的状态。

group1 = IntVar(value=1)
group2 = IntVar(value=3)

radio1 = Radiobutton(mainframe,text='rbutton1', value=1, variable=group1)
radio2 = Radiobutton(mainframe,text='rbutton2', value=2, variable=group1)

radio3 = Radiobutton(mainframe,text='rbutton3', value=3, variable=group2)
radio4 = Radiobutton(mainframe,text='rbutton4', value=4, variable=group2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 2019-10-09
    相关资源
    最近更新 更多