【问题标题】:Radio button in a Tkinter menuTkinter 菜单中的单选按钮
【发布时间】:2013-03-20 00:00:06
【问题描述】:

目标

了解 Tkinter 菜单中单选按钮的工作原理

代码

我在选项菜单中有一个单选按钮,如下所示:

v = 布尔变量() v.set(真) options.add_radiobutton(label="change pop up", command =togglePopUp,variable=v,onvalue=True,offvalue=False)

togglePopUp 是一个将变量v 的值从True 更改为False 或反之亦然的函数。主窗口已打开,此菜单稍后将添加到窗口中。这只是与单选按钮相关的代码片段。

问题

现在我的问题是,当我按下单选按钮时(运行代码后),变量的值会被更改还是会调用函数 togglePopUp?如果将调用该函数,那么单选按钮的状态会怎样?单选按钮的状态会立即更新还是会有延迟?

研究

我从 effbot.org 上的 Tkinter 书中了解了单选按钮和布尔变量。但我不相信它是如何工作的。我尝试了一个程序,但没有得到我想要的输出。所以我决定更深入地了解它是如何工作的。

规格 python 2.7 Tkinter 8.5 Linux Mint 14

【问题讨论】:

  • 您应该简单地尝试一下并观察会发生什么。
  • 我做到了,但无法真正理解里面发生了什么!

标签: python tkinter


【解决方案1】:

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

您的示例也行不通,因为add_radiobutton 不允许使用onvalueoffvalue 选项 - 只有value

【讨论】:

  • 我不明白你在说什么。小部件的正常行为是什么?它会改变变量吗??
  • @IcyFlame 通过正常行为,我指的是发生的默认操作 - 在这种情况下,单击小部件时更改变量的值。我已经更新了答案以反映这一点。
  • 对不起。 @罗达斯。我混合了一个单选按钮和一个复选按钮!对不起!!
猜你喜欢
  • 2014-03-16
  • 2018-09-16
  • 2013-07-15
  • 2016-10-28
  • 1970-01-01
  • 2012-04-29
  • 2016-09-01
  • 2021-04-01
  • 2016-09-11
相关资源
最近更新 更多