【发布时间】:2011-06-09 17:09:00
【问题描述】:
我正在使用 gridbagsizer 将两个面板放置在一个框架内。
control_panel = wx.Panel(self, id=ID_CONTROL_PANEL)
main_panel = wx.Panel(self, id=ID_MAIN_PANEL)
frame_sizer = wx.GridBagSizer(1, 1)
frame_sizer.Add(control_panel, (0, 0), (2, 5), flag=wx.EXPAND)
frame_sizer.Add(main_panel, (2, 0), (5, 5), flag=wx.EXPAND)
frame_sizer.AddGrowableRow(0)
frame_sizer.AddGrowableCol(0)
self.SetSizer(frame_sizer)
我希望 control_panel 位于 main_panel 上方(如上所示)。然而,这是我得到的输出:
当我指定相反时,我不知道为什么顶部面板比底部面板大得多。 (2, 5) 表示顶部,(5, 5) 表示底部。当我把它缩小时它也有一个奇怪的行为,它基本上给了我我想要的东西(见下图),但是当我再次放大它时我不知道如何保持这个比例。
但是,当您开始将尺寸调整得更大(即使是很小的量)时,您会看到(下方)形状和比例在另一个方向上发生了显着变化(底部变得更小而顶部变得更大)。
仍在尝试学习这个sizer,并且在我看到的任何示例中都找不到这个问题。还尝试尝试所有参数并进行一些测试,但我无法弄清楚这里发生了什么。任何帮助将不胜感激。
编辑:添加下面的图像以帮助下面的评论。
【问题讨论】:
标签: python user-interface wxpython sizer