2015-08-25 3 views
2

Я пытаюсь выровнять некоторые элементы управления в моем приложении 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 на день (что фактически будет лучше).

[EDIT: Предлагаемое описание sulution]

Параметр пропорция определяет соотношение того, как изменится виджеты в определенной ориентации. Предположим, у нас есть три кнопки с пропорциями 0, 1 и 2. Они добавляются в горизонтальный wx.BoxSizer. Кнопка с долей 0 не изменится вообще. Кнопка с пропорцией 2 изменится в два раза больше, чем та, которая имеет пропорцию 1 в горизонтальном измерении.

From zetcode Решение, предлагаемое Renae Lider

+1

Изменить '0' на' 1' в этой строке: 'vsizer.Add (hsizer2, 1, wx.EXPAND)' –

+0

Спасибо: D работает как шарм;) –

+0

Вы должны объяснить, что то, что вы меняете, флаг «пропорция», так что другие получают суть этого ответа. ratio (int) - используется в BoxSizer, чтобы указать, может ли дочерний элемент sizer изменять свой размер в основной ориентации BoxSizer, где 0 означает, что он не изменен, и значение больше нуля интерпретируется относительно значения другие дети одного BoxSizer. –

ответ

2

С неохотой, но, как @ Рена-Lider, кто ответил на вопрос, не отправил ответ.

Изменение 0 на 1 в этой строке:

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

Это параметр proportion.

Параметр пропорции определяет отношение изменения виджета в заданной ориентации.

Предположим, у нас есть три кнопки с пропорциями 0, 1 и 2. Они добавляются в горизонтальный wx.BoxSizer. Кнопка с долей 0 не изменится вообще. Кнопка с пропорцией 2 изменится в два раза больше, чем та, которая имеет пропорцию 1 в горизонтальном измерении.

Смежные вопросы