在Qt中,布局管理器(Layout)用于管理窗口中的控件的位置和大小,以适应不同大小的窗口。
常用的布局管理器包括QVBoxLayout、QHBoxLayout、QGridLayout和QFormLayout。
先放张布局UI:

QVBoxLayout(垂直布局管理器):QVBoxLayout是一个垂直方向的布局管理器。它按照从上到下的顺序排列控件。QVBoxLayout* layout = new QVBoxLayout;
layout->addWidget(widget1);
layout->addWidget(widget2);
layout->addWidget(widget3);
setLayout(layout);
QHBoxLayout(水平布局管理器):QHBoxLayout是一个水平方向的布局管理器。它按照从左到右的顺序排列控件。QHBoxLayout* layout = new QHBoxLayout;
layout->addWidget(widget1);
layout->addWidget(widget2);
layout->addWidget(widget3);
setLayout(layout);
QGridLayout(网格布局管理器):QGridLayout是一个网格的布局管理器。它将控件按照行和列的方式排列。QGridLayout* layout = new QGridLayout;
layout->addWidget(widget1, 0, 0); // 添加到第0行第0列
layout->addWidget(widget2, 0, 1); // 添加到第0行第1列
layout->addWidget(widget3, 1, 0, 1, 2); // 添加到第1行第0列,并占据1行2列
setLayout(layout);
QFormLayout(表单布局管理器):QFormLayout是一种专门用于表单的布局管理器。它将标签和输入控件配对排列。QFormLayout* layout = new QFormLayout;
layout->addRow("Label 1", widget1);
layout->addRow("Label 2", widget2);
layout->addRow("Label 3", widget3);
setLayout(layout);
这些布局管理器可以通过addWidget()、addLayout()和addSpacing()等方法来添加控件、子布局或间隔。
它们还提供了一些其他的方法来设置布局的对齐方式、边距等属性,以满足不同的需求。
使用布局管理器可以简化窗口的布局和调整过程,同时实现窗口的自适应和响应式布局,提高了代码的可维护性和可扩展性。
使用布局管理器还可以更好地适应不同窗口大小和分辨率,提高用户体验。