wxpython: центр и право выравнивают два элемента управления по горизонтали одновременно - PullRequest
0 голосов
/ 03 июня 2018

У меня есть два элемента управления в горизонтальном сортировщике.Как сделать так, чтобы один из них был выровнен по левому (или правому) краю, а другой по центру?

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)

Было бы здорово, если бы я мог указать, как задать ширину текстового элемента управления, чтобынуль.Это может привести к правильному центрированию слайдера.Тем не менее, это все еще не элегантный метод.

1 Ответ

0 голосов
/ 05 июня 2018

Вы не можете иметь два элемента в простом BoxSizer, и каждый элемент выровнен по-разному.Это не поддерживается.Вместо этого я просто добавил бы объект wx.Spacer (или, возможно, пару из них) и развернул их, чтобы помочь вам контролировать макет.

Или вы могли бы просто использовать GridSizer с тремя столбцами ипоместите средний виджет в средний столбец.

...