我正在使用wxpython GUI。我有三个面板(左边的两个水平分割,右边的一个与另外两个垂直分割 - 认为左边的两个方格和右边的一个高大的矩形)。我正在尝试在面板3(图像中的P3)中安装Gridsizer。我似乎无法让网格面板“填充”整个面板3.相反,它们捕捉到顶部和底部。理想情况下,我想要10个小面板(2行,5列)调整大小并很好地填充面板3(所有尺寸相同,尺寸足以查看每个面板)。我究竟做错了什么?谢谢!wxpython Gridsizer不适合面板
**** ****编辑我 已经改变了我的代码如下所示:
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
是self.Panel3
下wx.Notebook页。 self.Panel_Others
是一个字典,其中包含我正在显示的wx.Panels(这是动态更改的,所以这就是为什么我有它们的字典而不是指定它们)。
sizer_31 = wx.BoxSizer(wx.HORIZONTAL)
gs = wx.GridSizer(2,5,5,5)
for i in self.Panel_Others.keys():
sizer_temp = wx.BoxSizer(wx.VERTICAL)
sizer_temp.Add(self.Panel_Others[i],1,wx.EXPAND)
gs.Add(sizer_temp,1,wx.EXPAND,0)
sizer_31.Add(gs,0,wx.EXPAND)
self.OtherTeams.SetSizer(sizer_31)