首页 文章

取消选择单选按钮

提问于
浏览
1

我在Windows 7,Python 2.6,Tkinter下工作 .

每次用户选择GUI时,我都需要帮助取消选择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的按钮“Reset”:

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

.deselect() 方法不会删除此小部件中的黑色子弹!它选择所有的单选按钮(我在GUI中有3个单选按钮) . 请帮我理解如何解决这个问题 .

我试图破坏radiobutton并用相同的配置值再次声明它但是被破坏并再次出现黑色子弹(即选中) .

提前致谢 .

2 回答

  • 3

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

  • 1

    Radiobuttons的设计使得应始终选择一组中的一个 . 这种行为是用户期望的 . Radiobuttons的定义意味着“只需从这一组中选择一种” . 在您的具体情况下,按钮表示“是”或“否”,因此没有第三种选择 . 布尔值只能是两个选项之一 . 作为默认设置,为用户选择一个是没有害处的(除非您正在为核反应堆或医疗设备编写软件) . 如果取消选择全部,则默认情况下100%的时间都是错误的 . 如果你选择这两个值中的任何一个,你至少会猜到一半的时间 .

    通常,如果您确实希望用户无法选择任何选项,请添加“未知”的其他选项 .

相关问题