您好,我有一个主框架和一个按钮,按下该按钮会打开第二个框架。第二帧有6个单选按钮。我的问题是,当我选择一个不同于已选择的单选按钮并关闭框架时,当我再次打开它(不关闭整个程序)时,为什么选择了第一个按钮?如何保留我的新选择?
这是秒帧代码的一部分:
self.radio1 = wx.RadioButton(self, label="1 sec",pos=(35,35),)
self.Bind(wx.EVT_RADIOBUTTON, self.SetLab1, id=self.radio1.GetId())
self.radio2 = wx.RadioButton(self, label="2 sec",pos=(35,55))
self.Bind(wx.EVT_RADIOBUTTON, self.SetLab2, id=self.radio2.GetId())
self.radio3 = wx.RadioButton(self, label="4 sec",pos=(35,75))
self.Bind(wx.EVT_RADIOBUTTON, self.SetLab3, id=self.radio3.GetId())
.
.
.
self.button0=AB.AquaButton(self,label="Exit",pos=(115,142),size=(90,35))
self.Bind(wx.EVT_BUTTON, self.OnButton0, self.button0)
def OnButton0(self, event):
self.Close()
def SetLab1(self,event):
global Delay
Delay = 'A2/'
def SetLab2(self,event):
global Delay
Delay = 'A3/'
def SetLab3(self,event):
global Delay
Delay = 'A4/'
如果关闭框架,则会销毁它,而在再次构建时,它将恢复为默认状态。
您可以执行以下操作:
self.radio1 = wx.RadioButton(self, label="1 sec",pos=(35,35),)
self.Bind(wx.EVT_RADIOBUTTON, self.SetLab1, id=self.radio1.GetId())
self.radio2 = wx.RadioButton(self, label="2 sec",pos=(35,55))
self.Bind(wx.EVT_RADIOBUTTON, self.SetLab2, id=self.radio2.GetId())
self.radio3 = wx.RadioButton(self, label="4 sec",pos=(35,75))
self.Bind(wx.EVT_RADIOBUTTON, self.SetLab3, id=self.radio3.GetId())
global Delay
if Delay is not None:
getattr(self,"radio"+str(int(Delay[1])-1)).SetValue(True)
将选择与全局Delay变量中的值匹配的单选按钮。
一个更简单的解决方案不是“关闭”框架,而是隐藏框架
#instead of my_frame.Close() (or my_frame.Destroy())
my_frame.Hide()
这将保留构造的框架,因此当您下次显示它时,它将仍然具有其所有值
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句