目标
了解Tkinter菜单中的单选按钮是如何工作的
码
我在选项菜单中有一个单选按钮,如下所示:
v = BooleanVar()
v.set(True)
options.add_radiobutton(label="change pop up", command =togglePopUp,variable=v,onvalue=True,offvalue=False)
togglePopUp
是一个将变量v
的值从True
更改为False
的函数,反之亦然。主窗口已经打开,此菜单将稍后添加到窗口中。这只是与radiobutton相关的代码片段。
问题
现在我的问题是,当我按下radiobutton(运行代码后)时,变量的值是否会被更改,或者是否会调用函数togglePopUp?如果将调用该函数,那么radiobutton的状态会发生什么变化?无线电按钮的状态会立即更新还是会有延迟?
研究
我在effbot.org上阅读了Tkinter书中的radiobutton和布尔变量。但我不相信它是如何运作的。我尝试了一个程序,但我没有得到我本来想要的输出。所以我决定了解它如何在更深层次上运作。
specs python 2.7 Tkinter 8.5 Linux Mint 14
答案 0 :(得分:3)
这两种行为都会发生。单击radiobutton时,首先变量将更改其值,然后调用作为command
选项传递的事件处理程序(如果存在)。
此外,您的示例也不起作用,因为add_radiobutton
不允许onvalue
和offvalue
选项 - 仅value
。