我正在尝试做一个看起来像安装程序的东西,而没有实际安装任何东西(我正在使用它来探索wxPython),现在我正在尝试把一个面板放在另一个面板上,但是当我这样做时,窗口显示为灰色,只显示一个按钮的一角。你知道吗
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()
我建议使用wx.wizard.wizard向导小部件,因为它基本上已经有你需要的一切内置。您可以阅读here或者在wxPython演示中看到一个示例(可以从wxPython网站下载)。当然,滚动自己的向导要灵活得多。我创建了一个骨架来展示在我的blog上实现它的一种方法。你应该开始了。你知道吗
你的问题是你没有添加wx.展开将面板添加到sizer并且不为面板或框架调用SetSizer时的标志。你知道吗
相关问题 更多 >
编程相关推荐