【发布时间】:2012-01-17 01:39:15
【问题描述】:
我的问题是我有三个面板,我想给出垂直尺寸和水平尺寸以获取框架的大小
【问题讨论】:
-
欢迎来到 SO。不是很清楚你在问什么。发布相关代码可能会有所帮助。 :)
-
你所谈论的内容的草图也会有所帮助
标签: 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, "four"), 0, wx.EXPAND)
结果如下:
如果这不是您想要的,那么演示中可能还有其他可以工作的东西。从here获取demo,sizer示例在Window Layout | 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))
如果没有保留大小,您可以尝试将 SetPrefferedSize 替换为 SetMinSize altought,我真的不推荐它。
【讨论】: