Qt4 如何使Qt小部件随窗口大小而增长?

Qt4 如何使Qt小部件随窗口大小而增长?,qt4,autoresize,qt-designer,Qt4,Autoresize,Qt Designer,我想要一个小的QFormLayout,它会增长以填充其父窗口小部件 我使用Qt设计器中的QWidget模板创建了一个新的.ui文件。我将QFormLayout放在该“窗口”内,然后在QFormLayout内放置一些控件 这一切都相当好,但是QFormLayout始终保持在我在Qt设计器中设置的大小。我想让QFormLayout填充它的父窗口小部件,并用它增长/收缩 如何完成此操作?在Designer中,激活centralWidget并指定布局,例如水平或垂直布局。 然后QFormLayout将自

我想要一个小的
QFormLayout
,它会增长以填充其父窗口小部件

我使用Qt设计器中的
QWidget
模板创建了一个新的.ui文件。我将
QFormLayout
放在该“窗口”内,然后在
QFormLayout
内放置一些控件

这一切都相当好,但是
QFormLayout
始终保持在我在Qt设计器中设置的大小。我想让
QFormLayout
填充它的父窗口小部件,并用它增长/收缩


如何完成此操作?

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

始终确保所有小部件都有一个布局!否则,自动调整大小将与该小部件中断

另见


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

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

您需要将顶级QWidget对象的默认布局类型从打断布局类型更改为其他布局类型(垂直布局、水平布局、网格布局、表单布局)。 例如:

对这样的事情:


QtDesigner有时会有点困惑。哦,谢谢你!:-)我盯着QtDesigner(好吧,QtCreator,也有同样的东西)看了半个小时,不明白为什么我的中央小部件没有调整到最大值——直到我发现你在答案中圈出的小图标上面有一个红色的“禁用”标记。单击creator工具栏中的“垂直布局”按钮,问题就解决了。我第一次注意到工具栏,顺便说一句,很容易忽略…评论Jens回答:在mac上,单击顶级小部件(不一定命名为“centralWidget”),然后单击菜单栏中的“表单”并选择其中一个布局。如果有人还想知道,这是在QT5.8/QT Creator 4.2.1的Windows上通过单击顶级来完成的“centralWidget”(上面有一个小红色标记),然后进入工具>表单编辑器>垂直(或水平)布局。这让人恼火。在Qt Creator中,为中心小部件分配布局应该是最简单的操作。相反,这样做需要将这个高度不直观的解决方案与(按确切顺序)结合起来.虽然Qt Creator提供的自动化功能仍然大大超过了重复的样板文件,但它的用户体验(UX)令人震惊给了我一个新的视觉刺激。@Cecil Curry即使解决了这个问题,我还是花了20分钟才意识到我应该做什么…因为只有在没有上下文菜单选项添加布局的情况下,centralWidget才会出现…只有工具栏上的一个微透视按钮看起来几乎像不活动的按钮,因为即使在这里解决了这个问题,我也有麻烦无法找到该选项。您必须选择centralWidget,然后右键单击应用程序的一些可用空间,转到打开的上下文菜单中的“布局”,然后选择所需的布局。这至少对我有效(QT5,使用QT Designer 5.11.1)。