取消选择单选按钮

时间:2012-01-29 14:39:56

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

我在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个单选按钮)。请帮助我理解如何解决这个问题。

我试图摧毁无线电按钮并使用相同的配置值再次声明它,但是会被破坏并再次出现黑色子弹(即选中)。

提前致谢。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

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