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

2024-10-01 15:34:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的一个项目学习wxpython,但我有个问题。。 单击我的按钮后如何存储RadioButton的值?在

我有一个

class SerialFrame(wx.Frame):

我的内心

^{pr2}$

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)

但这行不通。P、 我的OOP知识还是有限的。在


Tags: 项目selfidbinddefwxpython按钮class
1条回答
网友
1楼 · 发布于 2024-10-01 15:34:38

我假设你有用户界面。单选按钮用于选择波特率。在

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

这里9600只打印在GUI上。你可以用你的名字代替9600。在

你必须明白没有什么是自动发生的。我们必须告诉wxpython选择单选按钮时如何反应。在

您还没有用clickStart1绑定BaudradioButton1。Bind用于指定在事件发生时必须调用哪个方法/函数。在

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

我的建议是

^{pr2}$

用方法绑定单选按钮

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
    ......

等等。。在

我建议你阅读事件机制。在

我希望这有帮助。在

相关问题 更多 >

    热门问题