2015-03-06 2 views
-1

я есть wx.Notebook и 2 страницы:добавлять страницы на кнопку печати (wx.Notebook)

nb = wx.Notebook(PanelLobby,wx.ID_ANY,pos=(100,100),size=(413,214)) 
nb.AddPage(page1,"Page 1",select=True) 
nb.AddPage(page2,"Page 2") 

я хочу, чтобы добавлять страницы к нему на кнопку печати, я попытался связать событие wx.EVT_LEFT_DOWN но не повезло.

благодарит заранее.

ответ

0

Это на самом деле довольно легко. Вот один из способов сделать это:

import random 
import wx 

######################################################################## 
class TabPanel(wx.Panel): 
    #---------------------------------------------------------------------- 
    def __init__(self, parent): 
     """""" 
     wx.Panel.__init__(self, parent=parent) 

     colors = ["red", "blue", "gray", "yellow", "green"] 
     self.SetBackgroundColour(random.choice(colors)) 

     btn = wx.Button(self, label="Press Me") 
     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(btn, 0, wx.ALL, 10) 
     self.SetSizer(sizer) 

######################################################################## 
class DemoFrame(wx.Frame): 
    """ 
    Frame that holds all other widgets 
    """ 

    #---------------------------------------------------------------------- 
    def __init__(self): 
     """Constructor"""   
     wx.Frame.__init__(self, None, wx.ID_ANY, 
          "Notebook Tutorial", 
          size=(600,400) 
         ) 
     panel = wx.Panel(self) 
     self.tab_num = 3 

     self.notebook = wx.Notebook(panel) 
     tabOne = TabPanel(self.notebook) 
     self.notebook.AddPage(tabOne, "Tab 1") 

     tabTwo = TabPanel(self.notebook) 
     self.notebook.AddPage(tabTwo, "Tab 2") 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(self.notebook, 1, wx.ALL|wx.EXPAND, 5) 

     btn = wx.Button(panel, label="Add Page") 
     btn.Bind(wx.EVT_BUTTON, self.addPage) 
     sizer.Add(btn) 

     panel.SetSizer(sizer) 
     self.Layout() 

     self.Show() 

    #---------------------------------------------------------------------- 
    def addPage(self, event): 
     """""" 
     new_tab = TabPanel(self.notebook) 
     self.notebook.AddPage(new_tab, "Tab %s" % self.tab_num) 
     self.tab_num += 1 

#---------------------------------------------------------------------- 
if __name__ == "__main__": 
    app = wx.App(False) 
    frame = DemoFrame() 
    app.MainLoop() 
+0

Вы знакомы с auiNotebook? вы знаете, могу ли я сделать это на этом ноутбуке? –

+0

Да, вы можете сделать то же самое с этим контролем. Должно быть довольно тривиально менять код wx.Notebook для кода ноутбука aui. –

 Смежные вопросы

  • Нет связанных вопросов^_^