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

Python 如何制作动态数量的水平Boxsizer?,python,wxpython,sizer,Python,Wxpython,Sizer,我有一个函数,可以计算屏幕上可以显示的图像数量,如果图像数量超过屏幕上可以显示的图像数量,我会调整图像大小,直到它们全部显示出来 然后,我想用一个垂直框大小器和几个水平框大小器来显示它们 框大小器的水平数量是动态的,根据图像的数量,它只能是一个或多个 如何定义多个长方体尺寸标注器并将其添加到垂直长方体尺寸标注器中?为什么不简单地将水平尺寸标注器做成一个循环,。将它们添加到相同的垂直尺寸标注器中?例如 def HorzInVert(n): vert = wx.BoxSizer(wx.VERTI

我有一个函数,可以计算屏幕上可以显示的图像数量,如果图像数量超过屏幕上可以显示的图像数量,我会调整图像大小,直到它们全部显示出来

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

框大小器的水平数量是动态的,根据图像的数量,它只能是一个或多个


如何定义多个长方体尺寸标注器并将其添加到垂直长方体尺寸标注器中?

为什么不简单地将水平尺寸标注器做成一个循环,
。将它们添加到相同的垂直尺寸标注器中?例如

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
。当然,您可以根据自己的需要使其更加华丽,使用各种参数来精确控制
Add
s的执行方式。

wx.GridSizer就是答案

这可能会起作用,但不会出现这样的情况:再次尝试插入相同的内容(因为我们多次插入horz?)。@aF,不会,因为horz的名称指的是循环中一个不同的、新实例化的BoxSizer偶数时间。您选择格式化是有意的吗?你的答案有点难读。