首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >垂直拆分水平BoxSizer

垂直拆分水平BoxSizer
EN

Stack Overflow用户
提问于 2019-02-04 21:11:18
回答 1查看 415关注 0票数 0

我尝试编写一些小的GUI,用于使用wxpython进行测试。我有一台有两个面板的BoxSizer。但现在我希望在GUI的底部有两个相邻的面板。如何垂直拆分水平大小?

到目前为止,我的代码如下:

代码语言:javascript
复制
import wx

class MyFrame(wx.Frame):
   def __init__(self, parent, ID, title):
       wx.Frame.__init__(self, parent, ID, title, size=(300, 250))

       panel1 = wx.Panel(self,-1, style=wx.SUNKEN_BORDER)
       panel2 = wx.Panel(self,-1, style=wx.SUNKEN_BORDER)   

       panel1.SetBackgroundColour("BLUE")
       panel2.SetBackgroundColour("RED")

       box = wx.BoxSizer(wx.VERTICAL)
       box.Add(panel1, 2, wx.EXPAND)
       box.Add(panel2, 1, wx.EXPAND)    

       self.SetAutoLayout(True)
       self.SetSizer(box)
       self.Layout()    

app = wx.PySimpleApp()
frame = MyFrame(None, -1, "Sizer Test")
frame.Show()
app.MainLoop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 06:53:07

您需要创建一个垂直方向的BoxSizer作为顶级大小,然后将您的水平大小添加到其中。下面是一个例子:

代码语言:javascript
复制
import wx

class MyFrame(wx.Frame):
    def __init__(self, parent, ID, title):
        wx.Frame.__init__(self, parent, ID, title, size=(300, 250))

        main_panel = wx.Panel(self)

        panel1 = wx.Panel(main_panel,-1, style=wx.SUNKEN_BORDER)
        panel2 = wx.Panel(main_panel,-1, style=wx.SUNKEN_BORDER)

        panel1.SetBackgroundColour("BLUE")
        panel2.SetBackgroundColour("RED")

        mainsizer = wx.BoxSizer(wx.VERTICAL)
        mainsizer.AddStretchSpacer()

        box = wx.BoxSizer(wx.HORIZONTAL)
        box.Add(panel1, 2, wx.EXPAND)
        box.Add(panel2, 1, wx.EXPAND)
        mainsizer.Add(box, 1, wx.EXPAND)

        main_panel.SetSizer(mainsizer)
        self.Layout()    

app = wx.App()
frame = MyFrame(None, -1, "Sizer Test")
frame.Show()
app.MainLoop()

另请注意,wx.PySimpleApp已弃用。您现在应该只使用wx.App

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54516898

复制
相关文章

相似问题

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