我有兩個wxNotebook元素象這樣的GUI:wxNotebook和wxBoxSizer行爲
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY,
"My App",size=(800,600),pos=((wx.DisplaySize()[0]-800)/2,(wx.DisplaySize()[1]-600)/2),style= wx.SYSTEM_MENU | wx.CAPTION | wx.MINIMIZE_BOX | wx.CLOSE_BOX)
self.SetBackgroundColour((232,232,232))
self.p = wx.Panel(self,size=(800,6300),pos=(0,0))
self.SetPages()
def SetPages(self):
self.nb = wx.Notebook(self.p,style=wx.NB_BOTTOM)
page1 = PageOne(self.nb)
page2 = PageTwo(self.nb)
self.nb.AddPage(page1, "page1")
self.nb.AddPage(page2, "page2")
self.sizer = wx.BoxSizer()
self.sizer.Add(self.nb, 1, wx.EXPAND)
self.p.SetSizer(self.sizer)
現在我想在特定事件創建第三&筆記本頁面設置聚焦。但是,這並不工作:
def CreateNewPageEvent(self, event):
self.CreateNewPage()
def CreateNewPage(self):
page3 = PageThree(self.nb)
self.nb.AddPage(page3, "page3")
我必須承認,我不知道什麼是「BoxSizer」確實=/ 任何想法得到這個工作?
編輯:好的,這適用於我的MainFrame類中的事件。但我也想從另一個類的事件創建一個新的NB-頁:
class ContinueApp(MainFrame):
def foo(self):
super(ContinueApp, self).CreateNewPage()
def continueapp(event):
cont = ContinueApp()
cont.foo()
這有點像xml中的TableLayout,如果有幫助的話。或者像一張放入其中的桌子。無論是列(垂直大小)或行(水平)。你可以組合它們或使用'GridBagSizer'。 –