我有一个简单的框架,上面有一个按钮。我想要做的是当我按下按钮时,我想关闭框架并打开一个新框架。旧的应该被销毁,而新的应该具有与被销毁的框架相同的功能。我想这是一个无限的时间。
这是我刚写的代码:
import wx
class subPanel(wx.Panel):
def __init__(self, parent, value = 2):
wx.Panel.__init__(self, parent)
self.BtnPressHere = wx.Button(self, -1, "Press Here")
self.value = value
hbox = wx.BoxSizer()
hbox.Add(self.BtnPressHere, 1, wx.EXPAND)
self.SetSizer(hbox)
if __name__ == "__main__":
class Screen(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, size = (600,600))
panel = wx.Panel(self)
panel0 = subPanel(panel, 0)
box = wx.BoxSizer()
box.Add(panel0, 1, wx.ALL | wx.EXPAND)
panel.SetSizer(box)
self.Centre()
self.Show(True)
app = wx.App(False)
Screen(None)
app.MainLoop()
感谢您的帮助。
答案 0 :(得分:0)
它很容易解决,看代码:
import wx
class ButtonFrame(wx.Frame):
def __init__(self, value):
wx.Frame.__init__(self,None)
self.BtnPressHere = wx.Button(self, -1, "Press Here: " + str(value))
self.BtnPressHere.Bind(wx.EVT_BUTTON, self.OnPress) # Need to bind the event
self.value = value
self.Centre()
self.Show()
def OnPress(self,evt):
ButtonFrame(self.value + 1)
self.Destroy() # Destroy this instance
if __name__ == "__main__":
app = wx.App(False)
ButtonFrame(0)
app.MainLoop()
self.Destroy()
调用将在创建另一个窗口后销毁该窗口。