如何使用wxPython将3个面板放在框架中

时间:2012-01-17 01:39:15

标签: wxpython

我的问题是我有三个面板,我想给出垂直尺寸,而水平面则采用框架的尺寸

2 个答案:

答案 0 :(得分:0)

以下是从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)

结果如下:

enter image description here

如果这不是您想要的,那么演示中可能还有其他功能可行。从here获取演示,sizer示例位于Window Layout | Sizers

答案 1 :(得分:0)

如果您希望面板具有不同的尺寸,则应使用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))

如果没有保留尺寸,你可以尝试用SetMinSize替换SetPrefferedSize,我不推荐它。