-1

我正在使用 wxPython 构建一个“首选项”窗口,该窗口将包含许多单选按钮集。根据wxWidgets 文档——(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。我在这里做错了吗?

4

2 回答 2

2

您发布的代码对我有用。我主要将此作为答案,以便我可以发布图片...如您所见,我可以选择两个单选按钮,前三个中的任何一个,以及后两个中的任何一个。

在此处输入图像描述

你确定你发布的代码是你运行的吗?我在 OSX 10.6.8 上使用“2.8.12.1”(但我怀疑这会对如此基本的东西产生影响)。

于 2013-10-19T01:40:21.430 回答
0

将 WX 从 2.9.4.0 升级到 2.9.5.0 解决了这个问题。这些版本号来自 Homebrew,令人尴尬的是,我不确定它们是指 wxPython 还是 wxWidgets。无论哪种方式,wxPython 更改日志wxWidgets 更改日志中都没有任何相关的内容,所以对我来说,为什么升级解决了我的问题是个谜。

于 2013-10-22T22:05:23.983 回答