2014-01-05 5 views
0

У меня есть кадр с панелью, содержащей ноутбук на верхнем уровне, каждая страница, содержащая различные панели:Как размер WX панели, чтобы соответствовать wx.Notebook (WxPython)

panel = wx.Panel(self) 
self._panel = panel 

# Arrange the various views in a notebook 

self._topNoteBook = wx.Notebook(panel) 

self._installsView = InstallsViewPane(self._topNoteBook) 
self._topNoteBook.AddPage(self._installsView, "Your CM Installations") 

self._H2HHViewNoteBook = wx.Notebook(self._topNoteBook) 
self._topNoteBook.AddPage(self._H2HHViewNoteBook, "Legacy H2HH View") 


# Do stuff to create the contents of installsView and H2HHViewNoteBook ... 
# [...] 

# Attempt to size the panel/topNoteBook so that 
# panel doesn't clip the contained notebook 
# Cause layout to happen 
sizer = wx.BoxSizer() 
self._sizer = sizer 
sizer.Add(self._topNoteBook, 1, wx.EXPAND) 
panel.SetSizerAndFit(sizer) 

Каждый из sub panes сами определяют размер, однако я не могу получить основной раму/панель для расширения, чтобы она соответствовала верхнему ноутбуку. Или, может быть, моя проблема в том, что я не могу заставить верхний ноутбук расширяться, чтобы соответствовать его детям: я не могу сказать, в чем проблема, эффект тот же: основной кадр слишком мал для дочерних ноутбуков.

В результате ребенок стекла выглядят хорошо, но в целом кадр слишком мал: он должен быть вручную расширен (который работает), чтобы увидеть все ребенок:

enter image description here

Помощь ?

+1

Попробуйте заменить SetSizerAndFit() на SetSizer() –

ответ

1

Я не слишком ясно, что проблема у вас возникли, но я думаю, что вы хотите сделать, это вызов:

Frame.SetSize((height, width)) 

Где высота и ширина являются целыми числами. Вы также можете попробовать использовать:

something.GetBestSize() 

Это возвращает кортеж из целых чисел, которые наилучшим образом соответствуют Somethings виджетов.

Также я стараюсь избегать вызова SetSizerAndFit (sizer). Обычно я называю SetSizer (sizer) и Layout() на все, что я пытаюсь изменить. На самом деле я не могу вспомнить последний раз, когда я вызвал Fit(), потому что он может испортить макеты, если у вас несколько кадров в кадре.

+0

Спасибо, кучи. Я попробую это, как только смогу, и отчитаюсь. – GreenAsJade

+0

Прошу прощения, мое объяснение проблемы было не очень хорошим. Подсказки, которые вы (и Майк) предоставили мне, предоставляют обходной путь (IE не пытается лучше всего подходит :)), но пока не решение. Я постараюсь уточнить вопрос, чтобы быть более ясным. – GreenAsJade

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

  • Нет связанных вопросов^_^