Python 使用wx.aui.AuiManager';s地址窗格
在使用wxPython的应用程序中,我使用wx.aui.AuiManager作为主框架的布局。对于用户触发的特定事件,框架中应显示两个窗格。我可以添加它们,使它们出现在框架中的正确位置(右侧),但我一直在努力调整每个窗格的大小。如果Python 使用wx.aui.AuiManager';s地址窗格,python,user-interface,wxpython,Python,User Interface,Wxpython,在使用wxPython的应用程序中,我使用wx.aui.AuiManager作为主框架的布局。对于用户触发的特定事件,框架中应显示两个窗格。我可以添加它们,使它们出现在框架中的正确位置(右侧),但我一直在努力调整每个窗格的大小。如果self.\u mgr=wx.aui.AuiManager(),我只需使用 self._mgr.AddPane(mypanel1, wx.aui.AuiPaneInfo(). Name("MyPanel1").
self.\u mgr=wx.aui.AuiManager()
,我只需使用
self._mgr.AddPane(mypanel1, wx.aui.AuiPaneInfo().
Name("MyPanel1").
Caption("MyPanel1").
MinSize(MyPanel1.GetBestSize()).
BestSize(MyPanel1.GetBestSize()).
Right().Layer(1).Position(0).CloseButton(True).
MaximizeButton(False))
self._mgr.AddPane(mypanel2, wx.aui.AuiPaneInfo().
Name("MyPanel2").
Caption("MyPanel2").
MinSize(MyPanel2.GetBestSize()).
BestSize(MyPanel2.GetBestSize()).
Right().Layer(1).Position(1).CloseButton(True).
MaximizeButton(False))
self._mgr.Update()
问题是,当运行软件并打开这两个面板(它们同时弹出)时,每个面板的高度是height_frame*0.5,但我希望它们的高度是height_panel1=0.3*height_frame,height_panel2=0.7*height_frame
见下面的例子。上图是我最后看到的,panel1和Panel2具有相同的高度(框架中可用高度的一半)。最底层是我想要的,每个面板之间都有一定的比例
+---------------------------------+
| +-----------+| ^ F
| MAIN FRAME | panel1 || | r
| | || | a
| | || | m
| | || | e
| +-----------+| |
| | panel2 || | h
| | || | e
| | || | i
| | || | g
| +-----------+| v h
+---------------------------------+ t
+---------------------------------+
| +-----------+|
| MAIN FRAME | panel1 ||
| | ||
| +-----------+|
| | panel2 ||
| | ||
| | ||
| | ||
| | ||
| | ||
| +-----------+|
+---------------------------------+
为了解决这个问题,我尝试在AddPane调用中使用MinSize和BestSize参数(即BestSize(wx.Size(1000,1000))
),但结果是两个面板的宽度发生变化,但每个面板的高度仍然相同(父框架高度的一半)
请注意,我希望panel1和panel2(30/70)之间的比例相同,即使重新缩放父主框架,但用户也应该能够通过“像往常一样”拖动面板来重新缩放它们(这是我现在必须做的事情,以便从50/50到30/70…但此功能当然仍然可用)
对于如何解决此问题,是否有任何建议/解决方案?提前谢谢 我通过动态计算面板的最小和最佳尺寸来解决这个问题 谢谢你的skybobbi!在反复修改之后,我发现在
self.Update()
之前添加以下行可以修复它:self.\u-mgr.GetPane(“MyPanel1”).dock\u-proportion=10
和self.\u-mgr.GetPane(“MyPanel1”).dock\u-proportion=25
。