wxPython处理不同方法之间的事件(按钮和单选按钮)

时间:2011-03-09 14:13:16

标签: python oop user-interface wxpython

我正在为我的一个项目学习wxpython,我遇到了问题.. 单击我的按钮后,如何存储RadioButton的值?

我有一个

class SerialFrame(wx.Frame):

里面我有

def __init__(self, parent, title):

    super(SerialFrame, self).__init__(parent, title=title, 
                                      size=(550, 400))

    self.SetMinSize(self.GetSize())
    self.InitUI()
    self.Center()
    self.Show()

InitUI方法设置我的UI,其中包含一堆东西,包括3个单选按钮和一个像这样的按钮

def InitUI(self):
    mypanel = wx.Panel(self, -1)
    ...
    baudRadioButton1 = wx.RadioButton(mypanel, -1, '9600', style=wx.RB_GROUP)
    baudRadioButton2 = wx.RadioButton(mypanel, -1, '14400')
    baudRadioButton3 = wx.RadioButton(mypanel, -1, '19200')
    ...
    stopButton = wx.Button(mypanel, 2, label='Stop', size = (70,20))
    ...
    mypanel.Bind(wx.EVT_BUTTON, self.clickStart, id=1)
    mypanel.Bind(wx.EVT_RADIOBUTTON, self.setRadioValues, id=baudRadioButton1.GetId())

我试过像

这样的东西
def clickStart(self, event):

    baudRate1 = str(self.baudRadioButton1.GetValue())
    self.Close(True)

但它不起作用。附:我的OOP知识仍然有限。

1 个答案:

答案 0 :(得分:3)

我假设你有UI。单选按钮用于选择波特率。

 baudRadioButton1 = wx.RadioButton(mypanel, -1, '9600', style=wx.RB_GROUP)

此处9600仅在GUI上打印。你可以把你的名字改为9600。

你必须明白,没有任何事情自动发生。我们必须告诉wxpython在选择单选按钮时如何反应。

您尚未将BaudradioButton1与clickStart1绑定。绑定用于指定事件发生时必须调用哪个方法/乐趣。

因此,当选择单选按钮时,会发生'EVT_RADIOBUTTON'事件,wxpython将调用clickstart1方法。在clickartart中,您可以操作波特率。 简而言之,您不必保存单选按钮值。

我的建议是

baudRadioButton1 = wx.RadioButton(mypanel, -1, label='9600', style=wx.RB_GROUP)
baudRadioButton2 = wx.RadioButton(mypanel, -1, label='14400')
baudRadioButton3 = wx.RadioButton(mypanel, -1, label='19200')

使用方法

绑定单选按钮
self.Bind(wx.EVT_RADIOBUTTON,self.baudRadioButton1,self.clickstart1)
self.Bind(wx.EVT_RADIOBUTTON,self.baudRadioButton2,self.clickstart2)
self.Bind(wx.EVT_RADIOBUTTON,self.baudRadioButton3,self.clickstart3)

和方法将

def clickStart1(self, event):
    baudRate = 9600
    ......


def clickStart2(self, event):
    baudRate = 14400
    ......

依旧......

我建议你阅读有关事件机制的内容。

我希望这会有所帮助。