Я пытаюсь выровнять некоторые элементы управления в моем приложении 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
Изменить '0' на' 1' в этой строке: 'vsizer.Add (hsizer2, 1, wx.EXPAND)' –
Спасибо: D работает как шарм;) –
Вы должны объяснить, что то, что вы меняете, флаг «пропорция», так что другие получают суть этого ответа. ratio (int) - используется в BoxSizer, чтобы указать, может ли дочерний элемент sizer изменять свой размер в основной ориентации BoxSizer, где 0 означает, что он не изменен, и значение больше нуля интерпретируется относительно значения другие дети одного BoxSizer. –