-1

私は wxPython を使用して、多数のラジオ ボタン セットを含む「設定」ウィンドウを作成しています。wxWidgets のドキュメント(wxPython のドキュメントでは関連情報が省略されています)によるとstyle=wx.RB_GROUP、各グループの最初のラジオ ボタンを指定できるはずです。ただし、代わりに、すべてのラジオ ボタンがグループ化されているため、1 つをクリックすると他のすべてのラジオ ボタンが選択解除されますが、そのグループ内の他のラジオ ボタンのみが選択解除されます。

この動作は、次の簡単な例で示されています。

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()

ラジオ ボタンには 2 つの独立したグループが必要ですが、最終的には 1 つしかありません。OS X 10.8.5 で Homebrew 経由で wxPython 2.9.4.0 を使用しています。ここで何か間違ったことをしていますか?

4

2 に答える 2

2

あなたが投稿したコードは私のために働いた。写真を投稿できるように、主にこれを答えとして入れています...ご覧のとおり、上の3つのいずれか、および下の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 に答える