Размещение элементов (панелей) в wx.GridBagSizer

Я использую gridbagsizer для размещения двух панелей в рамке.

control_panel = wx.Panel(self, id=ID_CONTROL_PANEL)
main_panel = wx.Panel(self, id=ID_MAIN_PANEL)

frame_sizer = wx.GridBagSizer(1, 1)
frame_sizer.Add(control_panel, (0, 0), (2, 5), flag=wx.EXPAND)
frame_sizer.Add(main_panel, (2, 0), (5, 5), flag=wx.EXPAND)
frame_sizer.AddGrowableRow(0)
frame_sizer.AddGrowableCol(0)
self.SetSizer(frame_sizer)

Я хочу, чтобы control_panel находилась над main_panel (как вы можете видеть выше). Однако вот результат, который я получаю:

alt text

Я не знаю, почему верхняя панель намного больше, чем нижняя, если я указал обратное. (2, 5) для верха и (5, 5) для низа. У него также странное поведение, когда я уменьшаю его размер, он в основном дает мне то, что я хочу (см. Изображение ниже), но я не знаю, как сохранить это соотношение, когда я снова увеличиваю его.

alt text

Однако когда вы начинаете увеличив размер (даже на небольшую величину), вы можете увидеть (ниже), что формы и соотношение резко изменяются в другом направлении (нижняя часть становится намного меньше, а верхняя - намного больше).

alt text

Все еще пытаюсь изучить этот размер и могу ' Я действительно не нашел эту проблему ни в одном из примеров, которые я видел. Также попробовал поэкспериментировать со всеми параметрами и провести несколько тестов, и я не могу понять, что здесь происходит. Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ: Изображение ниже добавлено, чтобы помочь комментарию ниже. alt text

6
задан johnharris85 16 January 2011 в 12:23
поделиться