【问题标题】:How to size a wx panel to fit a wx.Notebook (wxpython)如何调整 wx 面板的大小以适合 wx.Notebook (wxpython)
【发布时间】:2014-01-22 18:14:36
【问题描述】:

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

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)

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

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

帮助?

【问题讨论】:

  • 尝试用 SetSizer() 替换 SetSizerAndFit()

标签: wxpython sizer wxnotebook


【解决方案1】:

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

Frame.SetSize((height, width))

height 和 width 是整数。您也可以尝试使用:

 something.GetBestSize()

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

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

【讨论】:

  • 非常感谢。我会尽快尝试并报告。
  • 很抱歉我对问题的解释不好。您(和迈克)给我的提示提供了一种解决方法(IE 不会尝试做出最合适的 :)),但还不是解决方案。我将尝试更新问题以使其更清晰。
猜你喜欢
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 2014-02-02
相关资源
最近更新 更多