我正在为我的一个项目学习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知识仍然有限。
答案 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
......
依旧......
我建议你阅读有关事件机制的内容。
我希望这会有所帮助。