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

3

我正在尝试将我的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)

我希望底部的水平尺寸调整器(hsizer)能够向下延伸,或者将顶部尺寸调整器拉到底部以放置底部尺寸调整器(这实际上会更好)。
【编辑:提出的解决方案描述】
比例参数定义了小部件在定义的方向上如何改变的比率。假设我们有三个按钮,比例为0、1和2。它们被添加到一个水平wx.BoxSizer中。比例为0的按钮将不会改变。比例为2的按钮在水平维度上的变化将是比比例为1的按钮多两倍。
来自zetcode的解决方案,由Renae Lider提出。

1
将此行中的 0 更改为 1vsizer.Add(hsizer2, 1, wx.EXPAND) - Renae Lider
谢谢:D,运行得很好;) - Piotr Kamoda
你应该解释一下你正在更改的是“proportion”标志,这样其他人就能理解这个答案的要点。proportion(整数)- 它在BoxSizer中用于指示sizer的子项是否可以在BoxSizer的主方向上更改其大小 - 其中0表示不可更改,而大于零的值相对于同一BoxSizer的其他子项的值进行解释。 - Rolf of Saxony
如果您愿意,我可以编辑问题并添加您的评论。 - Piotr Kamoda
@Piotr。抱歉,我应该正确标记我的评论。我的观点是针对提供解决方案但解释不够清晰的Renae。 - Rolf of Saxony
@RolfofSaxony 我为解决方案添加了描述,当Renea有时间回答时,我会将其标记为答案 ;) - Piotr Kamoda
1个回答

2

由于回答问题的@renae-lider尚未发表答案,因此我不得不翻译这个问题。

请将此行中的0改为1:

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

这是“proportion”参数。
“proportion”参数定义了小部件在指定方向上的变化比率。
假设我们有三个按钮,它们的比例分别为0、1和2。它们被添加到一个水平的wx.BoxSizer中。比例为0的按钮不会改变。在水平维度上,比例为2的按钮将比比例为1的按钮变化两倍。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接