在菜单中将复选按钮的默认值设置为True

5 投票
3 回答
16701 浏览
提问于 2025-04-17 20:03

目标

我正在应用程序里创建一个菜单。在这个菜单中,我想要一个单选按钮(radiobutton)。而且我希望这个单选按钮默认是处于 的状态。

研究

我找到了如何使用 options.add_radiobutton() 命令来添加单选按钮,具体可以参考这个链接 TKinter effbot。但是我还是不知道应该使用哪个选项,才能让它默认设置为开。

代码

optionsmenu = Menu(menubar,tearoff=0)

optionsmenu.add_radiobutton(label='Pop Up set to on??',command=self.togglePopUp)

关于 self.togglePopUp 的代码:

def togglePopUp(self,event=None):
    if self.showPopUp:
        self.showPopUp = False

    else:
        self.showPopUp = True

我会把 self.showPopUp 初始化为 True

帮我设置单选按钮在默认模式下为 的状态。

3 个回答

0

我认为最简单的方法就是把变量初始化为默认值1。

var = IntVar(value=1)
0

正如 @A Rodas 提到的:

self.var = IntVar()

self.var.set(1)

optionsmenu.add_checkbutton(label='Pop Up set to on??', command=self.togglePopUp,
                            variable=self.var, onvalue=1, offvalue=0)

要获取这个变量的值,可以使用:

if self.var.get() == 1:
    self.showpopup()

else:

    print 'popup has been disabled. you can toggle this option in the options menu'
7

如果你想要切换布尔值(就是真和假),我建议你使用 add_checkbutton(),而不是 add_radiobutton()

使用单选按钮(radiobutton)时,你只能设置一个固定的 value 值,这个值在点击时不会改变。而复选按钮(checkbutton)则可以让你在 onvalueoffvalue 之间切换。

self.var = IntVar(root)
self.var.set(1)
optionsmenu.add_checkbutton(label='Pop Up set to on??', command=self.togglePopUp,
                            variable=self.var, onvalue=1, offvalue=0)

请注意,你需要用来作为菜单项的变量 IntVar 可以替代 self.togglePopUp 这个变量。

撰写回答