【问题标题】:elementary wx sizing issues基本 wx 尺寸问题
【发布时间】:2012-11-02 06:18:07
【问题描述】:

我有以下与尺寸相关的代码:

import wx

class TableSelectPanel(wx.Panel):
    def __init__(self, parent, *args, **kwargs):
        wx.Panel.__init__(self, parent, *args, **kwargs)

        self.title = wx.StaticText(self, label="Select Table")
        self.tableList = wx.ListBox(self)
        
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.title)
        sizer.Add(self.tableList, flag=wx.EXPAND)
        self.SetSizerAndFit(sizer)

class LobbyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None)
        
        self.tableSelect = TableSelectPanel(self)
        
        #window size
        self.SetMinSize((800, 600))
        self.SetMaxSize((800, 600))
        self.SetSize((800, 600))
        
        #sizers
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.tableSelect, flag=wx.EXPAND)
        
        self.SetSizer(sizer)

        self.Show(True)

我的期望是,我将有一个 800x600 的窗口,wx.ListBox 垂直拉伸以适应桌子的整个高度。但是,虽然我确实有一个 800x600 的窗口,但 wx.ListBox 并没有扩展到整个高度。相反,似乎面板确实伸展了,但列表框没有:

我做错了什么?

【问题讨论】:

    标签: python user-interface layout wxpython sizer


    【解决方案1】:

    proportion 设置为 1:

    sizer.Add(self.tableList, proportion=1, flag=wx.EXPAND)
    

    虽然这个参数的含义在wxSizer中是未定义的,但是在wxBoxSizer中使用它来表示一个sizer的子节点是否可以在wxBoxSizer的主方向上改变它的大小——其中0代表不可改变,取值为more大于零的解释相对于同一 wxBoxSizer 的其他子项的值。例如,你可能有一个水平的 wxBoxSizer,它有三个孩子,其中两个应该用 sizer 改变它们的大小。然后这两个可伸缩窗口将分别获得 1 的值,以使它们与 sizer 的水平尺寸相等地增长和收缩。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 2016-08-21
      相关资源
      最近更新 更多