我正在开发wxpythongui。我有三个面板(两个在左边水平分割,一个在右边从另外两个垂直分割——想象一下左半边有两个正方形,右半部分是高矩形)。我正在尝试在面板3中安装网格大小调整器(图中的P3)。我似乎无法让网格面板“填充”整个面板3。相反,它们会弹到顶部和底部。理想情况下,我希望10个小面板(2行,5列)调整大小并填充面板3很好(所有大小相同,大到可以看到每个)。我做错什么了?谢谢!在
****编辑**** 我已将代码更改为如下所示:
sizer_31 = wx.BoxSizer(wx.VERTICAL)
gs = wx.GridSizer(0,4,7,7)
for i in self.Panel_Others.keys():
gs.Add(self.Panel_Others[i],0,wx.ALIGN_CENTER|wx.ALL,5)
sizer_31.Add(gs,0,wx.ALIGN_CENTER|wx.ALL,5)
self.OtherTeams.SetSizer(sizer_31)
sizer_31.SetSizeHints(self.OtherTeams)
我的新面板3看起来像下图。这是一些改进。但是,我希望单个面板(总共10个)扩展相同的数量,以便整个笔记本页面都被相同大小的小面板覆盖(想象一下日历是什么样子的,每天都是一个面板)。在
****结束编辑****
以下是我的原始代码:
注意:self.OtherTeams
是wx.笔记本页面位于self.Panel3
下。self.Panel_Others
是一个包含wx.面板我正在显示(这是动态变化的,所以这就是为什么我有一个字典,而不是指定它们)。在
在
wxPython 2.8
中,这将导致页面左上角出现单一模糊。wxPython 2.9
在使用sizer时会更聪明一些,这就是为什么它看起来有些工作。在首先,在
BoxSizer
中创建GridSizer
,但不允许它动态扩展(wx.EXPAND
)。 其次,您将sizer设置为wx.Notebook
,而不是页面(panel),这将向下移动整个布局并裁剪网格大小调整器中控件/面板的底行,或者在2.8
中被完全忽略,从而将所有内容移到左上角。在这应该可以做到:
编辑:下面的示例演示如何动态更新wx.GridSizer公司在一个wx.笔记本页码:23/46
^{pr2}$相关问题 更多 >
编程相关推荐