【问题标题】:wxpython: Center and right align two controls horizontally at the same timewxpython:同时水平居中和右对齐两个控件
【发布时间】:2018-06-03 19:34:30
【问题描述】:

我在水平尺寸器中有两个控件。如何让其中一个对齐左(或右)而另一个居中?

import wx
from wx.lib.stattext import GenStaticText

class PageNavigator(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.SetBackgroundColour((179, 179, 179))

        self.scrollbar = wx.Slider()
        self.scrollbar.Create(self)

        self.pagenum_txtctrl = GenStaticText(self, label="Page 1")

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.pagenum_txtctrl, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT, 0)
        #sizer.AddStretchSpacer(1)
        sizer.Add(self.scrollbar, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT, 0)
        #sizer.AddStretchSpacer(1)
        self.SetSizer(sizer)

如果我能指定如何将文本控件的宽度设置为零,那就太好了。这可能会欺骗 sizer 使滑块正确居中。但是,它仍然不是一个优雅的方法。

【问题讨论】:

    标签: python wxpython sizer


    【解决方案1】:

    您不能在一个简单的BoxSizer 中包含两个项目,并且每个项目的对齐方式不同。这是不支持的。相反,我会添加一个 wx.Spacer 对象(或者其中几个),然后让它们展开以帮助您控制布局。

    或者您可以只使用具有三列的GridSizer,并将中间小部件放在中间列中。

    【讨论】:

      猜你喜欢
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 2012-09-12
      相关资源
      最近更新 更多