在 wxPython 中将控件对齐到面板底部

Align control to bottom of panel in wxPython

我正在尝试将我的 wxPython 应用程序中的一些控件与面板底部对齐。这是我的代码示例:

def __DoLayout(self):
    vsizer = wx.BoxSizer(wx.VERTICAL)
    hsizer = wx.BoxSizer(wx.HORIZONTAL)
    hsizer2 = wx.BoxSizer(wx.HORIZONTAL)

    hsizer.Add(self.prog, 0, wx.ALL|wx.EXPAND, 5)
    hsizer2.Add(self.text, 0, wx.ALL|wx.EXPAND, 5)

    #hsizer.Add(self.timer, 0, wx.EXPAND|wx.ALIGN_RIGHT)

    vsizer.Add(hsizer2, 0, wx.EXPAND)
    vsizer.Add(hsizer, 0, wx.ALIGN_BOTTOM|wx.EXPAND)

    self.SetSizer(vsizer)

我希望底部水平 sizer (hsizer) 拉伸到底部,或者顶部水平 sizer 拉伸并将 bottom sizer 放在底部(实际上会更好)。

[编辑:提议的解决方案描述]

The proportion parameter defines the ratio of how will the widgets change in the defined orientation. Let's assume we have three buttons with the proportions 0, 1, and 2. They are added into a horizontal wx.BoxSizer. Button with proportion 0 will not change at all. Button with proportion 2 will change twice more than the one with proportion 1 in the horizontal dimension.

From zetcode Renae Lider

提出的解决方案

很不情愿,但作为回答问题的@renae-lider 没有发布答案。

将此行中的 0 更改为 1:

vsizer.Add(hsizer2, 1, wx.EXPAND)

这是proportion参数。

比例参数定义小部件在定义的方向上如何变化的比例。

假设我们有三个比例为 0、1 和 2 的按钮。它们被添加到水平 wx.BoxSizer 中。比例为 0 的按钮根本不会改变。比例为 2 的按钮在水平维度上的变化比比例为 1 的按钮多两倍。