如何使Qt Widget随窗口大小而增长?

bas*_*ibe 81 qt4 qt-designer autoresize

我希望有一个小的QFormLayout增长来填充其父窗口小部件.

我使用Qt Designer中的模板创建了一个新的.ui文件QWidget.我在QFormLayout里面放了一个'窗口',然后把一些控件放在里面QFormLayout.

这一切都运行得相当好,但QFormLayout总是保持我在Qt Designer中设置的大小.我希望QFormLayout填充其父窗口小部件并使用它进行扩展/缩小.

我怎么能做到这一点?

Jen*_*ens 115

在Designer中,激活centralWidget并指定布局,例如水平或垂直布局.然后您的QFormLayout将自动调整大小.

设计师的形象

始终确保所有小部件都有布局!否则,自动调整大小将打破该小部件!

也可以看看

在QtDesigner中,控件坚持过大,不会调整大小

  • 哦,谢谢!:-)我一直盯着QtDesigner(好吧,QtCreator,虽然那里有同样的事情)半小时,但无法弄清楚为什么我的中央小部件没有调整到最大 - 直到我发现那个小小的图标你已经在你的答案中盘旋了一个红色的"禁用"标记.单击创建工具栏中的"垂直布局"按钮,问题就解决了.我第一次注意到工具栏BTW,容易被忽视...... (27认同)
  • QtDesigner有时会有点混乱. (11认同)
  • 要评论Jens答案:在Mac上,单击顶级窗口小部件(不一定命名为"centralWidget"),然后单击菜单栏中的"窗体"并选择其中一个布局. (7认同)
  • 如果还有人想知道,这是在QT5.8/QT Creator 4.2.1中的Windows上通过单击顶级"centralWidget"(其上有一个小红色标记)然后转到工具>表单编辑器>布局来完成的垂直(或水平). (2认同)

小智 41

我发现在我在其下面添加至少一个孩子之前,不可能将布局分配给centralwidget.然后我可以突出显示带有红色"禁用"标记的小图标,然后单击顶部Designer设计器工具栏中的布局.

  • 撰写此评论是因为即使在这里找到解决方案之后,我也很难找到该选项。您必须选择centralWidget,然后右键单击应用程序的可用空间,在打开的上下文菜单中转到“布局”,然后选择所需的布局。至少对我来说这有效(使用QT Designer 5.11.1的QT5)。 (3认同)
  • **这令人发疯。**将布局分配给中央窗口小部件*应该*是Qt Creator中最简单的操作。相反,这样做需要将此高度不直观的解决方案与[Jens](/sf/users/21286331/)'[同样不直观的解决方案](/sf/answers/423160671/)结合起来(*按照确切的顺序*)。尽管Qt Creator提供的自动化功能仍在很大程度上击败了重复性的样板,但围绕其令人震惊的用户体验(UX)的破解却给了我新的眼球。 (2认同)

Nik*_*kos 11

接受的答案(它的图像)是错误的,至少现在在 QT5 中是错误的。相反,您应该为根对象/小部件分配一个布局(指向上述图像,它应该是MainWindow而不是centralWidget)。另请注意,您必须至少QObject在其下方创建一个才能使其正常工作。这样做,您的 ui 将响应窗口大小调整。


Lin*_*Dao 11

您需要通过按与布局相关的工具栏按钮之一,将顶级 QWidget 对象的默认布局类型从中断布局类型更改为其他布局类型(垂直布局、水平布局、网格布局、表单布局)。例如: 在此输入图像描述

对于这样的事情:

在此输入图像描述