【问题标题】:How to fit 3 Panels in a Frame with wxPython如何使用 wxPython 在一个框架中安装 3 个面板
【发布时间】:2012-01-17 01:39:15
【问题描述】:

我的问题是我有三个面板,我想给出垂直尺寸和水平尺寸以获取框架的大小

【问题讨论】:

  • 欢迎来到 SO。不是很清楚你在问什么。发布相关代码可能会有所帮助。 :)
  • 你所谈论的内容的草图也会有所帮助

标签: wxpython


【解决方案1】:

这是一个来自 wx 演示的示例。

box = wx.BoxSizer(wx.VERTICAL)
box.Add(SampleWindow(win, "one"), 0, wx.EXPAND)
box.Add(SampleWindow(win, "two"), 0, wx.EXPAND)
box.Add(SampleWindow(win, "three"), 0, wx.EXPAND)
box.Add(SampleWindow(win, "four"), 0, wx.EXPAND)

结果如下:

如果这不是您想要的,那么演示中可能还有其他可以工作的东西。从here获取demo,sizer示例在Window Layout | Sizers下。

【讨论】:

    【解决方案2】:

    如果您希望面板具有不同的尺寸,您可能应该使用 FlexGridSizer。比如:

    sizer = wx.FlexGridSizer(4, 1, 0, 0)
    sizer.AddGrowableRow(3)
    first_panel = wx.Panel(self)
    second_panel = wx.Panel(self)
    third_panel = wx.Panel(self)
    first_panel.SetPrefferedSize((-1, custom_height1))
    second_panel.SetPrefferedSize((-1, custom_height2))
    third_panel.SetPrefferedSize((-1, custom_height3))
    sizer.Add(first_panel, 1, wx.EXPAND)
    sizer.Add(second_panel, 1, wx.EXPAND)
    sizer.Add(third_panel, 1, wx.EXPAND)
    sizer.Add((-1, -1))
    

    如果没有保留大小,您可以尝试将 SetPrefferedSize 替换为 SetMinSize altought,我真的不推荐它。

    【讨论】:

      猜你喜欢
      • 2021-12-03
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 2013-08-27
      相关资源
      最近更新 更多