1

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

然后,我想用一个垂直的 box sizer 和几个水平的 box sizer 来显示它们!

box sizer 的水平数量是动态的,根据图像的数量,它可以只有一个或多个。

如何定义多个 box sizer 并将它们添加到垂直 box sizer 中?

4

2 回答 2

3

为什么不简单地在一个循环中制作水平尺寸器,将.Add它们设置为相同的垂直尺寸器?例如

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的垂直尺寸器作为参数,以及垂直尺寸器的.Fit. 当然,您可以根据需要将其变得更加精美,并使用各种参数来精确控制Adds 的执行方式。

于 2010-07-03T15:37:36.667 回答
0

wx.GridSizer 就是答案!

于 2010-07-04T12:23:17.687 回答