wxPython:当我关闭框架时,单选按钮如何记住我的选择
你好,我有一个主框架和一个按钮,当它按下第二个框架打开。第二帧有6个单选按钮。我的问题是,当我选择一个与allready不同的单选按钮并关闭帧时,以及当我再次打开它(不关闭整个程序)时,为什么选择第一个单选按钮以及如何保留我的新选择 以下是秒帧代码的某些部分:wxPython:当我关闭框架时,单选按钮如何记住我的选择,python,python-2.7,wxpython,Python,Python 2.7,Wxpython,你好,我有一个主框架和一个按钮,当它按下第二个框架打开。第二帧有6个单选按钮。我的问题是,当我选择一个与allready不同的单选按钮并关闭帧时,以及当我再次打开它(不关闭整个程序)时,为什么选择第一个单选按钮以及如何保留我的新选择 以下是秒帧代码的某些部分: self.radio1 = wx.RadioButton(self, label="1 sec",pos=(35,35),) self.Bind(wx.EVT_RADIOBUTTON, self.SetLab1, id=s
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)
这将选择与全局延迟变量中的值匹配的单选按钮
一个更简单的解决方案不是“关闭”框架,而是隐藏它
#instead of my_frame.Close() (or my_frame.Destroy())
my_frame.Hide()
这保留了构造的框架,因此当您下次显示它时,它仍将保留其所有值谢谢您的回答,我尝试了第二个示例,但它不起作用,而对于第一个示例,我应该怎么做?我看不出您在示例中是如何关闭框架的,因此我很难告诉您它是如何工作的。。。。编辑为更明确地说明如何选择其中一个单选按钮