【问题标题】:deselect radio button取消选择单选按钮
【发布时间】:2012-02-21 15:56:33
【问题描述】:

我在 Windows 7、Python 2.6、Tkinter 下工作。

每次用户选择单选按钮时,我都需要帮助来取消选择 GUI 中的单选按钮。我在同一组中有三个单选按钮和一个重置按钮。当用户选择重置按钮时,需要取消选择所有单选按钮。

这是单选按钮的声明:

self.Rb1 = Radiobutton (self.parent, text = 'Is this a required pre_action to the next step?', variable = self.var, value = 1)                
self.Rb1.place (x = 100, y= 400)   

以及绑定到命令 OnReset 的“重置”按钮:

def OnReset(self):
    self.v1.set("Organ")
    self.v2.set("Instrument")
    self.v3.set("Surgical Action")
    self.Rb1.deselect()

但是.deselect() 方法并没有从这个小部件中删除黑色子弹!它选择所有单选按钮(我在 GUI 中有 3 个单选按钮)。请帮助我了解如何解决此问题。

我尝试销毁单选按钮并使用相同的配置值再次声明它,但被销毁并再次出现黑色子弹(即选中)。

提前致谢。

【问题讨论】:

    标签: user-interface radio-button tkinter python-2.6


    【解决方案1】:

    我刚刚测试并发现,如果您将variable 的值设置为与任何单选按钮的value 参数不对应的值,则会出现未选中的按钮。因此,如果您的三个单选按钮将 self.var 分别设置为 0、1 和 2,您可以使self.var.set(3) 不选择任何选项。由于 3 不对应任何单选按钮,因此不会选择任何单选按钮。

    【讨论】:

    • 这应该是答案
    【解决方案2】:

    单选按钮的设计是为了始终选择一组中的一个。这种行为是用户所期望的。根据定义,单选按钮的意思是“这组中的一个选项”。在您的特定情况下,按钮表示“是”或“否”,因此没有第三选择。布尔值只能是两种选择之一。继续为用户选择一个默认值并没有什么坏处(除非,也许,您正在为核反应堆或医疗设备编写软件)。如果取消全选,则默认值 100% 的时间都是错误的。如果您选择这两个值中的任何一个,您至少会猜对一半的时间。

    一般来说,如果您真的希望用户不能选择任何选项,请添加一个附加选项,即“未知”。

    【讨论】:

      猜你喜欢
      • 2011-07-17
      • 1970-01-01
      • 2015-07-01
      • 2015-02-27
      • 2013-10-01
      • 1970-01-01
      • 2017-12-01
      • 2013-01-01
      相关资源
      最近更新 更多