我正在使用 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,并且在我见过的任何示例中都找不到这个问题。还尝试尝试所有参数并进行一些测试,但我无法弄清楚这里发生了什么。任何帮助将非常感激。
编辑:添加下面的图像以帮助下面的评论。