2012-12-20 4 views
2

나는 wxpython 응용 프로그램을 실행 중입니다. 응용 프로그램 내에서 나는 노트북 페이지/탭의 몇 가지 번호와 노트북을 포함하는 패널이 있습니다. 버튼 (wx.button)을 누르면 노트북 페이지 중 하나를 지우고 GUI에서 제공 한 새로운 정보로 바꿀 수 있습니다.wxpython의 노트 페이지 추가

wx.Notebook에 Clear() 함수를 전혀 보지 못했기 때문에 페이지를 삭제하고 새 페이지를 만들 생각을했습니다. 그러나, 나는 이것을 작동시킬 수 없다. 여기에 내 코드가있다 ... 도움 ??

def UpdatePanel(self):  

    self.Notebook3.DeletePage(0) 

    self.newpage = scrolled.ScrolledPanel(self.Notebook3, -1) 
    self.newpage.SetupScrolling() 
    self.Notebook3.AddPage(self.newpage,"Page Inserted Here") 

    # self.Notebook3.InsertPage(0,"Page Inserted Here") 
+0

무엇을 작동하지 않는 이유는 무엇입니까? – BrtH

+0

내가 함수를 잘못 호출 한 것 같습니다. 또한, 내 새 페이지 정보가 addpage 앞에 와야했는데, 나중에 그 일을하고있었습니다. 나는 아래의 답변을 따라 내가 어떻게 페이지 추가 기능을 호출했는지를 고쳤다. – mcfly

답변

3

체크 아웃이 코드 당신이 당신에 적응하는 방법을 참조하십시오

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 

import wx 

class Page(wx.Panel): 
    def __init__(self, parent): 
     wx.Panel.__init__(self, parent) 
     t = wx.StaticText(self, -1, "THIS IS A PAGE OBJECT", (20,20)) 

class MainFrame(wx.Frame): 
    def __init__(self): 
     wx.Frame.__init__(self, None, title="Notebook Remove Pages Example") 

     pannel = wx.Panel(self) 
     vbox = wx.BoxSizer(wx.VERTICAL) 
     hbox = wx.BoxSizer(wx.HORIZONTAL) 

     self.buttonRemove = wx.Button(pannel, id=wx.ID_ANY, label="DELETE", size=(80, 25)) 
     self.buttonRemove.Bind(wx.EVT_BUTTON, self.onButtonRemove) 
     hbox.Add(self.buttonRemove) 

     self.buttonInsert = wx.Button(pannel, id=wx.ID_ANY, label="CREATE", size=(80, 25)) 
     self.buttonInsert.Bind(wx.EVT_BUTTON, self.onButtonInsert) 
     hbox.Add(self.buttonInsert) 

     vbox.Add(hbox) 

     self.Notebook3 = wx.Notebook(pannel) 
     vbox.Add(self.Notebook3, 2, flag=wx.EXPAND) 

     pannel.SetSizer(vbox) 

     self.pageCounter = 0 
     self.addPage() 

    def addPage(self): 
     self.pageCounter += 1 
     page  = Page(self.Notebook3) 
     pageTitle = "Page: {0}".format(str(self.pageCounter)) 
     self.Notebook3.AddPage(page, pageTitle) 

    def onButtonRemove(self, event): 
     self.Notebook3.DeletePage(0) 

    def onButtonInsert(self, event): 
     self.addPage() 

if __name__ == "__main__": 
    app = wx.App() 
    MainFrame().Show() 
    app.MainLoop()