Радиокнопки, использующие wxpython - PullRequest
0 голосов
/ 03 октября 2011

Я строю графический интерфейс, используя wxpython .. У меня есть кнопки и радиокнопки, и я хочу

для выполнения таких задач в зависимости от текущих значений виджетов в графическом интерфейсе .. Вставка

Кнопка

имеет несколько операторов if, один из них, если оператор должен проверить, является ли

выбрана радиокнопка. я не хочу привязывать событие к переключателю, поэтому у меня есть

проверил это в кнопке вставки, используя

это определенная кнопка радиона

self.rb1 = wx.RadioButton(self.panel, -1, 'Is this a required pre_action to the next   

step?', (5, 220))

и это условие проверки

if self.rb1.GetValue():

    # do something here

, а также:

if self.rb1.GetValue() == 'True':

  # do some tasks

в обоих направлениях (что уже одно и то же), когда я выбираю радио, ничего не происходит

кнопка rb1! так в чем же проблема?

1 Ответ

1 голос
/ 03 октября 2011

Я не знаю, что это не работает для вас.У меня это работает просто отлично.Смотрите пример кода ниже:

import wx

class MyForm(wx.Frame):

    #----------------------------------------------------------------------
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Tutorial")
        panel = wx.Panel(self, wx.ID_ANY)

        self.radio = wx.RadioButton(panel, label="Test", style = wx.RB_GROUP)
        self.radio2 = wx.RadioButton(panel, label="Test2")

        btn = wx.Button(panel, label="Check Radio")
        btn.Bind(wx.EVT_BUTTON, self.onBtn)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.radio, 0, wx.ALL, 5)
        sizer.Add(self.radio2, 0, wx.ALL, 5)
        sizer.Add(btn, 0, wx.ALL, 5)
        panel.SetSizer(sizer)

    #----------------------------------------------------------------------
    def onBtn(self, event):
        """"""
        print "First radioBtn = ", self.radio.GetValue()
        print "Second radioBtn = ", self.radio2.GetValue()

# Run the program
if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = MyForm().Show()
    app.MainLoop()
...