0

我有一个框架,其中的面板在顶层包含一个笔记本,每个页面都包含不同的窗格:

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)

每个子窗格的大小都合适,但是我无法扩展主框架/面板以适应顶部笔记本。或者 - 也许我的问题是我无法让顶部笔记本扩展以适应它的孩子:我实际上无法判断哪个是问题,效果是一样的:主框架对于孩子笔记本来说太小了。

结果是子窗格看起来不错,但整体框架太小:必须手动展开(有效)才能看到整个子窗格:

在此处输入图像描述

帮助?

4

1 回答 1

1

我不太清楚你有什么问题,但我认为你想做的是打电话:

Frame.SetSize((height, width))

其中高度和宽度是整数。您也可以尝试使用:

 something.GetBestSize()

这将返回最适合某些小部件的整数元组。

我也尽量避免调用 SetSizerAndFit(sizer)。我通常在尝试调整大小时调用 SetSizer(sizer) 和 Layout()。事实上,我不记得上次调用 Fit() 是什么时候了,因为如果框架中有多个面板,它可能会搞砸布局。

于 2014-01-06T18:03:20.113 回答