0
我創建了一個簡單的程序,它由一個主框架(Frame)和兩個子框架(ChildFrame1和ChildFrame2)組成。大型機有兩個按鈕,用來檢查ChildFrame1是否已經創建,如果不是則創建相同的,另一個將檢查ChildFrame2是否已經創建,如果不是則創建。現在棘手的部分(至少對我來說很棘手),ChildFrame1有一個按鈕,需要檢查ChildFrame2是否已經從大型機創建,如果不創建它。在我的代碼中,此按鈕只是從主機創建另一個ChildFrame2和以前創建的ChildFrame2。我怎樣才能使這個工作?基本上我有兩個按鈕在兩個框架,但一個事件。wxPython子框架交互
代碼
import wx
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY,'Parent')
panel = wx.Panel(self, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
button = wx.Button(panel, -1, 'Open Child1')
button2 = wx.Button(panel, -1, 'Open Child2')
sizer.Add(button, 0, wx.CENTER|wx.ALL, 5)
sizer.Add(button2, 0, wx.CENTER|wx.ALL, 5)
panel.SetSizer(sizer)
self.Bind(wx.EVT_BUTTON, self.onButton, button)
self.Bind(wx.EVT_BUTTON, self.onButton2, button2)
def onButton(self, e):
try:
self.ChildF.Show()
except:
self.ChildF = ChildFrame1()
self.ChildF.Show()
self.ChildF.SetFocus()
def onButton2(self, e):
try:
self.ChildF2.Show()
except:
self.ChildF2 = ChildFrame2()
self.ChildF2.Show()
self.ChildF2.SetFocus()
class ChildFrame1(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, wx.GetApp().TopWindow, wx.ID_ANY, 'Child1')
panel = wx.Panel(self, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
button = wx.Button(panel, -1, 'Open Child2')
sizer.Add(button, 0, wx.CENTER|wx.ALL, 5)
panel.SetSizer(sizer)
self.Bind(wx.EVT_BUTTON, self.OnButton, button)
def OnButton(self,e):
try:
self.ChildF.Show()
except:
self.ChildF = ChildFrame2()
self.ChildF.Show()
self.ChildF.SetFocus()
class ChildFrame2(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, wx.GetApp().TopWindow, wx.ID_ANY, 'Child2')
if __name__ == '__main__':
app = wx.App()
frame = Frame().Show()
app.MainLoop()
謝謝!有用! – Domagoj