您好我有一个主框架和一个按钮,当按下第二个框架打开时。第二帧有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/'
答案 0 :(得分:3)
如果你关闭框架就会销毁它,当你再次构建它时,它将恢复到默认状态。
你可以这样做:
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()
这会保留构造的框架,因此当您下次显示它时,它仍将具有其所有值