在Tkinter菜单中的单选按钮

3

目标

了解Tkinter菜单中的radiobutton是如何工作的。

代码

我在选项菜单中有一个radiobutton:

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的状态将会发生什么变化?radiobutton的状态是否会立即更新,还是会有延迟?

研究

我在effbot.org的Tkinter书中读到了关于radiobutton和Boolean变量的内容。但我并不确定它是如何工作的。我尝试了一个程序,但我没有得到我想要的输出。所以我决定更深入地了解它的工作原理。

规格 python 2.7 Tkinter 8.5 Linux Mint 14


你应该尝试一下,观察会发生什么。 - Bryan Oakley
我尝试了,但是实际上并没有真正理解里面发生了什么!! - IcyFlame
1个回答

3

这两个操作都会发生。当您单击单选按钮时,首先变量将更改其值,之后如果有传递为command选项的事件处理程序,则调用该处理程序。

此外,您的示例不起作用,因为add_radiobutton不允许onvalueoffvalue选项 - 只允许value选项。


我不理解你所说的内容。此部件的正常行为是什么?它会更改变量吗? - IcyFlame
@IcyFlame 正常行为指发生的默认操作 - 在这种情况下,即在单击小部件时更改变量值。我已更新答案以反映这一点。 - A. Rodas
抱歉,@ A Rodas。我混淆了单选按钮和复选框!对不起!! - IcyFlame

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接