有没有可能在wxPython的BoxSizer中插入一个面板

2024-10-05 13:18:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试做一个看起来像安装程序的东西,而没有实际安装任何东西(我正在使用它来探索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()

Tags: selfaddinitdefargsthiskwargswx
1条回答
网友
1楼 · 发布于 2024-10-05 13:18:01

我建议使用wx.wizard.wizard向导小部件,因为它基本上已经有你需要的一切内置。您可以阅读here或者在wxPython演示中看到一个示例(可以从wxPython网站下载)。当然,滚动自己的向导要灵活得多。我创建了一个骨架来展示在我的blog上实现它的一种方法。你应该开始了。你知道吗

你的问题是你没有添加wx.展开将面板添加到sizer并且不为面板或框架调用SetSizer时的标志。你知道吗

相关问题 更多 >

    热门问题