Как подобрать размер панели 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)

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

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

Помогите?

1 ответ

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

Frame.SetSize((height, width))

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

 something.GetBestSize()

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

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

Другие вопросы по тегам