首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >框架和面板中的BoxSizer

框架和面板中的BoxSizer
EN

Stack Overflow用户
提问于 2014-03-19 18:36:53
回答 1查看 316关注 0票数 0

当我创建这样一个BoxSizer时:

代码语言:javascript
复制
class MyForm(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, 
                      "App",size=(800,600),style= wx.SYSTEM_MENU | wx.CAPTION | wx.MINIMIZE_BOX | wx.CLOSE_BOX)
        self.panel=wx.Panel(self,size=(800,600))
        # create BoxSizer and fill it with elements

它起作用了。但当我这么做的时候

代码语言:javascript
复制
class MyForm(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, 
                      "App",size=(800,600),style= wx.SYSTEM_MENU | wx.CAPTION | wx.MINIMIZE_BOX | wx.CLOSE_BOX)
        panelThree(self)

class panelThree(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent,size=(800,600))
        self.panel=wx.Panel(self,size=(800,600))
        # create BoxSizer and fill it with elements

然后出了点问题:所有元素都位于左上角,它们相互重叠。当我想在我的类BoxSizer中使用它时,我必须如何使用它呢?我只是从这里举了一个例子:http://wiki.wxpython.org/BoxSizerTutorial

EN

回答 1

Stack Overflow用户

发布于 2014-03-19 19:10:16

问题很可能是,您没有将以下小部件添加到sizer中: self.panel。如果不将其添加到sizer中,那么它将破坏您的布局。就我个人而言,我认为你甚至不需要面板内的面板。删除该行将修复以下问题:

代码语言:javascript
复制
import wx

class MyForm(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, 
                      "App",size=(800,600),style= wx.SYSTEM_MENU | wx.CAPTION | wx.MINIMIZE_BOX | wx.CLOSE_BOX)
        panelThree(self)

class panelThree(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent,size=(800,600))
        self.panel=wx.Panel(self,size=(800,600))
        # create BoxSizer and fill it with elements
        sizer = wx.BoxSizer(wx.VERTICAL)

        for item in range(10):
            btn = wx.Button(self, label="Button %s" % item)
            sizer.Add(btn, 0, wx.ALL|wx.CENTER, 5)

        self.SetSizer(sizer)

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyForm()
    frame.Show()
    app.MainLoop()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22515200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档