2012-08-07 6 views
0

실제로 설치하지 않고 설치 프로그램처럼 보이는 것을 만들려고합니다. (지금 wxPython을 탐색 할 때 사용하고 있습니다.) 그리고 지금은 패널을 다른 패널에 놓았지만, 그럴 때마다 창문이 회색으로 나타나고 버튼 하나만 나타납니다.패널을 wxPython의 BoxSizer에 삽입 할 수 있습니까?

import wx 

class PanelOne(wx.Panel): 
    def __init__(self,*args,**kwargs): 
     wx.Panel.__init__(self,*args,**kwargs) 

    def initUI(self): 
     vbox=wx.BoxSizer(wx.VERTICAL) 
     vbox.Add(wx.StaticText(self,-1,'This is Panel One'),0,wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL) 
     vbox.SetSizeHints(self) 
     self.SetSizer(vbox) 
     self.Show(True) 


class Gui(wx.Frame): 
    def __init__(self,*args,**kwargs): 
     wx.Frame.__init__(self,*args,**kwargs) 


     self.initUI() 
     self.tTips() 


    def initUI(self): 
     panel=wx.Panel(self) 
     self.vbox=wx.BoxSizer(wx.VERTICAL) 

     panel.SetSizer(self.vbox) 

     ##This is what im having trouble with 
     p1=PanelOne(self) 
     self.vbox.Add(p1,3,wx.ALL,10) 
     ## 

     btnBox=wx.BoxSizer(wx.HORIZONTAL) #This Sizer is for the box that will hold the next and back buttons. 

     backBtn=wx.Button(panel,-1,'&Back')# back button 
     backBtn.Bind(wx.EVT_BUTTON,self.onBack) 
     btnBox.Add(backBtn,0,wx.ALL,10) 
     nextBtn=wx.Button(panel,-1,'&Next')# next button 
     nextBtn.Bind(wx.EVT_BUTTON,self.onNext) 
     btnBox.Add(nextBtn,0,wx.ALL,10) 

     self.vbox.Add(btnBox) 


     self.vbox.SetSizeHints(self) 
     self.Show(True) 
    def onNext(self,e): 
     pass 
    def onBack(self,e): 
     pass 

    def tTips(self): 
     pass 
if __name__ == '__main__': 
    app=wx.App() 
    gui=Gui(None,-1,'Title Yo') 
    app.MainLoop() 

답변

3

나는 기본적으로 이미 내장 필요한 모든 것을 갖추고으로 wx.wizard.Wizard 위젯을 사용하는 것이 좋습니다 것입니다. 그것을 here에 대해 읽거나 wxPython 데모 (wxPython 웹 사이트에서 다운로드 할 수 있음)에서 예제를 볼 수 있습니다. 물론 자신 만의 마법사를 사용하는 것이 훨씬 더 유연합니다. 내 blog에서 그것을 수행하는 한 가지 방법을 보여주는 해골을 만들었습니다. 그것은 당신을 시작해야합니다.

문제는 sizer에 패널을 추가 할 때 패널이나 프레임에 SetSizer를 호출하지 않을 때 wx.EXPAND 플래그를 추가하지 않는다는 것입니다.

관련 문제