让Qt Designer设计的Widget随MainWindow增大而增大

入门Qt,各位老鸟见笑了。网上一搜有这个问题的还不少,而且一些中文博客/论坛用一些旁门左道误导不明真相的群众,还是写下本文吧。

问题描述

通过Qt Creator中的Designer(或者独立的Qt Designer程序)设计Qt程序外观的时候,里面添加的小部件(Widgets)不能随着主窗体(MainWindow)的增大而增大。

解决办法

在Designer界面下,鼠标右键点击根级的Object(如MainWindow),在Layout(布局)里选一个(亲测Grid、Form、Vertical、Horizontal都可以,按你程序的布局需求选取即可)。

mainwindow_layout_choose

选取好Layout之后,centralWidget前面的layout提示就不再是带有禁止符号的“无布局”了。这个时候再编译运行一下程序,就会发现所有的子Widget都可以随着主窗体尺寸的改变而改变了。

参考来源:Controls insist on being too large, and won’t resize, in QtDesigner