我正在使用wxPython构建一个“首选项”窗口,其中包含许多单选按钮。根据{{3}} - (wxPython文档省略了相关信息) - 我应该能够为每个组中的第一个单选按钮指定style=wx.RB_GROUP
。但是,相反,所有单选按钮都组合在一起,因此单击其中一个将取消选择其他所有,而它应该只取消选择该组中的其他单选按钮。
使用以下简单示例演示了此行为:
import wx
class RadioTest(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
sizer = wx.BoxSizer(wx.VERTICAL)
self.button_a_1 = wx.RadioButton(self, label='Group A, button 1',
style=wx.RB_GROUP)
self.button_a_2 = wx.RadioButton(self, label='Group A, button 2')
self.button_a_3 = wx.RadioButton(self, label='Group A, button 3')
sizer.Add(self.button_a_1)
sizer.Add(self.button_a_2)
sizer.Add(self.button_a_3)
self.button_b_1 = wx.RadioButton(self, label='Group B, button 1',
style=wx.RB_GROUP)
self.button_b_2 = wx.RadioButton(self, label='Group B, button 2')
sizer.Add(self.button_b_1)
sizer.Add(self.button_b_2)
self.SetSizer(sizer)
app = wx.App(False)
radio_test = RadioTest(None)
radio_test.Show()
app.MainLoop()
应该有两个独立的单选按钮组,但最终只有一个。我在OS X 10.8.5上通过Homebrew使用wxPython 2.9.4.0。我在这里做错了吗?
答案 0 :(得分:2)
您发布的代码为我工作。我把它作为答案主要是因为我可以发布一张图片......你可以看到,我可以选择两个单选按钮,前三个中的任何一个,以及最后两个中的任何一个。
您确定发布的代码是您运行的代码吗?我在OSX 10.6.8上使用'2.8.12.1'(但我怀疑这对于那些基本的东西有所不同)。
答案 1 :(得分:0)
将WX从2.9.4.0升级到2.9.5.0修复此问题。这些版本号来自Homebrew并且令人尴尬,我不确定它们是指wxPython还是wxWidgets。无论哪种方式,the wxPython changelog或the wxWidgets changelog中似乎都没有任何相关内容,因此对我来说,为什么要升级修复我的问题是个谜。