wxpython:同时水平居中和右对齐两个控件
wxpython: Center and right align two controls horizontally at the same time
我在水平大小调整器中有两个控件。如何让其中一个左对齐(或右对齐)而另一个居中对齐?
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 使滑块正确居中。但是,这仍然不是一个优雅的方法。
您不能在一个简单的 BoxSizer
中包含两个项目,并且每个项目的对齐方式不同。那是不支持的。相反,我只是在(或可能是其中的几个)中添加一个 wx.Spacer
对象,并让它们扩展以帮助您控制布局。
或者您可以只使用具有三列的 GridSizer
并将中间小部件放在中间列中。
我在水平大小调整器中有两个控件。如何让其中一个左对齐(或右对齐)而另一个居中对齐?
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 使滑块正确居中。但是,这仍然不是一个优雅的方法。
您不能在一个简单的 BoxSizer
中包含两个项目,并且每个项目的对齐方式不同。那是不支持的。相反,我只是在(或可能是其中的几个)中添加一个 wx.Spacer
对象,并让它们扩展以帮助您控制布局。
或者您可以只使用具有三列的 GridSizer
并将中间小部件放在中间列中。