【问题标题】:How to make a dynamic number of horizontal BoxSizers?如何制作动态数量的水平 BoxSizer?
【发布时间】:2010-07-03 10:55:13
【问题描述】:

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

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

box sizer的横向数量是动态的,根据图片的数量可以只有一个或多个。

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

【问题讨论】:

    标签: python wxpython sizer


    【解决方案1】:

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

    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 的执行方式。

    【讨论】:

    • 这可能有效,但不会给出类似的结果:尝试再次插入相同的东西(因为我们多次插入 horz?)..
    • @aF,不,因为 horz 这个名字指的是一个不同的、新实例化的 BoxSizer,甚至是循环的时间。
    【解决方案2】:

    wx.GridSizer 就是答案!

    【讨论】:

    • 您选择的格式是有意的吗?你的答案有点难读。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多