如何使用wxPython在一个框架中安装3个面板

如何使用wxPython在一个框架中安装3个面板,wxpython,Wxpython,我的问题是,我有三个面板,我想给出垂直尺寸,水平尺寸取框架的尺寸,这里有一个来自wx演示的示例 box = wx.BoxSizer(wx.VERTICAL) box.Add(SampleWindow(win, "one"), 0, wx.EXPAND) box.Add(SampleWindow(win, "two"), 0, wx.EXPAND) box.Add(SampleWindow(win, "three"), 0, wx.EXPAND) box.Add(SampleWindow(win,

我的问题是,我有三个面板,我想给出垂直尺寸,水平尺寸取框架的尺寸,这里有一个来自wx演示的示例

box = wx.BoxSizer(wx.VERTICAL)
box.Add(SampleWindow(win, "one"), 0, wx.EXPAND)
box.Add(SampleWindow(win, "two"), 0, wx.EXPAND)
box.Add(SampleWindow(win, "three"), 0, wx.EXPAND)
box.Add(SampleWindow(win, "four"), 0, wx.EXPAND)
结果如下:


如果这不是您想要的,那么演示中可能还有其他东西可以使用。从中获取演示,sizer示例位于
窗口布局| Sizers

下。如果您希望面板具有不同的尺寸,您应该使用FlexGridSizer。比如:

sizer = wx.FlexGridSizer(4, 1, 0, 0)
sizer.AddGrowableRow(3)
first_panel = wx.Panel(self)
second_panel = wx.Panel(self)
third_panel = wx.Panel(self)
first_panel.SetPrefferedSize((-1, custom_height1))
second_panel.SetPrefferedSize((-1, custom_height2))
third_panel.SetPrefferedSize((-1, custom_height3))
sizer.Add(first_panel, 1, wx.EXPAND)
sizer.Add(second_panel, 1, wx.EXPAND)
sizer.Add(third_panel, 1, wx.EXPAND)
sizer.Add((-1, -1))

如果没有保留大小,您可以尝试将setPreferedSize替换为SetMinSize,但我并不推荐这样做。

欢迎使用。不太清楚你在问什么。发布相关代码可能会有所帮助。:)一份你正在谈论的东西的草图也会有所帮助