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

发布于 2024-09-08 05:59:57 字数 207 浏览 1 评论 0原文

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

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

盒子大小调整器的水平数量是动态的,可以只有一个或多个,具体取决于图像的数量。

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

I have a function that calculates the number of images that can be displayed on the screen, if there are more images than the ones that can be put on screen, I resize the images till they all can appear.

Then, I want to display them with one vertical box sizer and several horizontal box sizers!

The horizontal number of box sizers are dynamic, it can be only one or more depending on the number of images.

How can I define several box sizers and add them to the vertical box sizer?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

短暂陪伴 2024-09-15 05:59:57

为什么不简单地将水平调整器放在一个循环中,将它们.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

您可以从任何地方调用这个简单的函数,它返回垂直 sizer 和其中的 n 个水平 sizer 列表 - 然后调用者将适当的内容添加到水平滑块,一个适当的 SetSizer 以垂直尺寸调整器作为参数,以及垂直尺寸调整器的.Fit。当然,您可以根据需要将其变得更加精美,使用各种参数来精确控制Add的执行方式。

Why not simply make the horizontal sizers in a loop, .Adding them to the same vertical sizer? 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

You can call this simple function from anywhere, it returns the vertical sizer and the list of n horizontal sizers in it -- then the caller adds stuff suitably to the horizontal sliders, an appropriate SetSizerwith the vertical sizer as the argument, and the vertical sizer's .Fit. Of course you can make it as much fancier as you want, with all sort of arguments to control exactly how the Adds are performed.

呢古 2024-09-15 05:59:57

wx.GridSizer 就是答案!

wx.GridSizer is the answer!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文