如何使用wxPython';s BoxSizer

如何使用wxPython';s BoxSizer,wxpython,wxwidgets,Wxpython,Wxwidgets,我想创建一个布局,其中一个wxPanel占据窗口的2/3,另一个占据窗口的1/3。我知道如何使它们50/50或如何指定最小和最大尺寸。但有没有办法具体说明占用多少可用空间 import wx eng = wx.App() frame = wx.Frame(parent=None, title='wxPython') main_panel = wx.Panel(frame) main_panel.SetBackgroundColour(wx.Colour(255,0,0)) main_size

我想创建一个布局,其中一个wxPanel占据窗口的2/3,另一个占据窗口的1/3。我知道如何使它们50/50或如何指定最小和最大尺寸。但有没有办法具体说明占用多少可用空间

import wx

eng = wx.App()
frame = wx.Frame(parent=None, title='wxPython')

main_panel = wx.Panel(frame)
main_panel.SetBackgroundColour(wx.Colour(255,0,0))
main_sizer = wx.BoxSizer(wx.HORIZONTAL)
main_panel.SetSizer(main_sizer)

left_panel = wx.Panel(main_panel)
left_panel.SetBackgroundColour(wx.Colour(0,255,0))
main_sizer.Add(left_panel, 1, wx.ALL | wx.EXPAND, 0)

right_panel = wx.Panel(main_panel)
right_panel.SetBackgroundColour(wx.Colour(0,0,255))
main_sizer.Add(right_panel, 1, wx.ALL | wx.EXPAND, 0)

frame.Show()
frame.CenterOnScreen()

eng.MainLoop()

比例
参数到
大小器
将为您控制这一点

比例
值更改为其中一个大小调整器条目为2,这将使
大小调整器
为该条目分配两倍的空间

比例定义了施胶者的孩子之间的关系有多大。在垂直尺寸测量仪中,这会改变高度;在水平施胶器中,这会更改宽度

这里,右侧面板已被修改

import wx

eng = wx.App()
frame = wx.Frame(parent=None, title='wxPython')

main_panel = wx.Panel(frame)
main_panel.SetBackgroundColour(wx.Colour(255,0,0))
main_sizer = wx.BoxSizer(wx.HORIZONTAL)
main_panel.SetSizer(main_sizer)

left_panel = wx.Panel(main_panel)
left_panel.SetBackgroundColour(wx.Colour(0,255,0))
main_sizer.Add(left_panel, 1, wx.ALL | wx.EXPAND, 0)

right_panel = wx.Panel(main_panel)
right_panel.SetBackgroundColour(wx.Colour(0,0,255))
main_sizer.Add(right_panel, 2, wx.ALL | wx.EXPAND, 0)

frame.Show()
frame.CenterOnScreen()

eng.MainLoop()