我在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个单选按钮)。请帮助我理解如何解决这个问题。
我试图摧毁无线电按钮并使用相同的配置值再次声明它,但是会被破坏并再次出现黑色子弹(即选中)。
提前致谢。
答案 0 :(得分:3)
我刚刚测试过并发现如果将LocalBroadcastManager
的值设置为与任何单选按钮的variable
参数不对应的值,则按钮显示为未选中。因此,如果您的三个单选按钮分别将value
设置为0,1和2,则可以使self.var
无法选择任何选项。由于3不对应任何单选按钮,因此不会选择任何单选按钮。
答案 1 :(得分:1)
Radiobuttons的设计应始终选择一组中的一个。这种行为是用户期望的。 Radiobuttons的定义意味着“只需从这一组中选择一种”。在您的具体情况下,按钮表示“是”或“否”,因此没有第三种选择。布尔值只能是两个选项之一。作为默认设置,为用户选择一个是没有害处的(除非您正在为核反应堆或医疗设备编写软件)。如果取消选择全部,则默认情况下100%的时间都是错误的。如果你选择这两个值中的任何一个,你至少会猜到一半的时间。
通常,如果您确实希望用户无法选择任何选项,请添加“未知”的其他选项。