我有一个函数可以计算可以在屏幕上显示的图像数量,如果图像多于可以放在屏幕上的图像,我会调整图像的大小直到它们都可以出现。
然后,我想用一个垂直的 box sizer 和几个水平的 box sizer 来显示它们!
box sizer 的水平数量是动态的,根据图像的数量,它可以只有一个或多个。
如何定义多个 box sizer 并将它们添加到垂直 box sizer 中?
为什么不简单地在一个循环中制作水平尺寸器,将.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
. 当然,您可以根据需要将其变得更加精美,并使用各种参数来精确控制Add
s 的执行方式。
wx.GridSizer 就是答案!