我的问题是我有三个面板,我想给出垂直尺寸,而水平面则采用框架的尺寸
答案 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)
结果如下:
如果这不是您想要的,那么演示中可能还有其他功能可行。从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,我不推荐它。