【问题标题】:Why won't QGroupBox widgets dynamically resize with rest of window?为什么 QGroupBox 小部件不会随窗口的其余部分动态调整大小?
【发布时间】:2017-01-04 01:00:34
【问题描述】:

我有一个 QMainWindow,其中的小部件以网格形式排列。当窗口按预期调整大小时,它们都会按比例调整大小,除了放置在 QGroupBox 内的小部件。 QGroupBox 本身会调整大小,但里面的小部件只是停留在同一个地方。如果我在 QGroupBox 上应用布局,小部件会失去其原始位置。请注意,我将 .ui 文件与 PyQt4 一起使用。您可以获取文件here。

这就是发生的事情:

【问题讨论】:

  • 组框内的小部件必须在布局中。如果它们不在一个布局中,它们的大小是固定的(布局管理大小,没有布局,没有调整大小)
  • 你说“小部件失去原来的位置”是什么意思? (PS:请不要链接到其他网站上的代码 - 把它放在问题本身)。
  • 我的意思是,如果我在 QGroupBox 上应用布局,则里面的所有小部件都会根据布局类型适应自己。即使是网格布局,它们也不会停留在您在屏幕截图中看到的位置,而是占据完全不同的位置。

标签: qt resize pyqt qwidget qgroupbox


【解决方案1】:

来自Qt documentation on QGroupBox:

QGroupBox 不会自动布置子小部件(它们是 通常是 QCheckBoxes 或 QRadioButtons,但可以是任何小部件)。

有一个示例显示如何为QGroupBox 设置布局(这与为任何基于QWidget 的对象设置布局相同,该对象旨在存储其他对象,例如QFrame)。

您必须创建一个布局,调用QGroupBox::setLayout,然后将小部件添加到布局中。如果您使用 QtCreator,请右键单击 QGroupBox,然后从上下文菜单中选择您要为其使用的布局。

【讨论】:

  • 谢谢。我最终只是摆脱了 QGroupBox 并使用布局,直到做对为止。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
  • 2011-05-18
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多