最近在使用Qt做一些东西,中间遇到一些问题,记录之,希望能帮助到其他遇到此类问题的朋友。

1. QSplliter充满整个窗体,随着父窗体的大小而自动改变大小。

在Qt Creator中的Design视图中,拖拽两个控件到centralWidget,然后同时选中这两个Widget选择工具蓝中的Lay Out Horizontally in Splitter,这样就将两个Widget放到了一个Splitter中了,如下图:

QT QSplitter随窗口自适应大小(Autosize)_控件


但是运行程序发现,QSplliter只有这么大,不能充满整个centerWidget,而且不随着centerWidget的缩放而缩放。

解决办法:

在centerWidget空白区域邮件,选择Lay Out给MainWindows设置一个Layout就好了,我这里选择Lay Out Horizontally。如下图:

QT QSplitter随窗口自适应大小(Autosize)_缩放_02


2. 设置QSplliter左右控件的大小比例。

控制左右控件大大小,我不知道在Qt的Designer中怎么设置,我是在代码中进行设置的。

在MainWindows的构造函数中使用setStretchFactor函数进行设置如下:

这里是1:8的比例

ui->splitter->setStretchFactor(0, 1);
ui->splitter->setStretchFactor(1, 8);