如何制作动态数量的水平BoxSizer?

时间:2010-07-03 10:55:14

标签: python wxpython sizer

我有一个计算可以在屏幕上显示的图像数量的功能,如果图像的数量多于可以放在屏幕上的图像,我会调整图像大小,直到它们全部出现。

然后,我想用一个垂直框大小调整器和几个水平框大小调整器显示它们!

盒子大小调整器的水平数量是动态的,根据图像的数量,它只能是一个或多个。

如何定义多个框大小调整器并将它们添加到垂直框大小调整器?

2 个答案:

答案 0 :(得分:3)

为什么不简单地将水平大小调整器放在一个循环中,.Add将它们放到同一个垂直大小调整器中? E.g。

def HorzInVert(n):
  vert = wx.BoxSizer(wx.VERTICAL)
  horizontals = []
  for i in range(n):
    horz = wx.BoxSizer(wx.HORIZONTAL)
    vert.Add(horz,1, wx.ALL, 0)
    horizontals.append(horz)
  return vert, horizontals

你可以从任何地方调用这个简单的函数,它返回垂直大小调整器和n水平大小调整器的列表 - 然后调用者将东西适当地添加到水平滑块,一个合适的SetSizer使用垂直sizer作为参数,以及垂直sizer的.Fit。当然,你可以根据自己的需要设置更多的风扇,并使用各种参数来精确控制Add的执行方式。

答案 1 :(得分:0)

wx.GridSizer就是答案!