Qt 入门 07|三大布局管理器:QHBoxLayout/QVBoxLayout/QGridLayout 自动排版详解
一、布局核心作用放弃手动move(x,y)固定坐标窗口缩放时控件自动跟随拉伸、对齐适配不同分辨率窗口。Qt 三大原生布局水平、垂直、网格。1.QVBoxLayout 垂直布局自上而下纵向排列控件cpp运行QWidget w; QVBoxLayout *vlay new QVBoxLayout(w); // 布局绑定窗口 vlay-addWidget(new QPushButton(按钮1)); vlay-addWidget(new QLineEdit); vlay-addSpacing(10); // 控件之间间距10像素2.QHBoxLayout 水平布局从左到右横向排列cpp运行QHBoxLayout *hlay new QHBoxLayout; hlay-addWidget(new QLabel(姓名)); hlay-addWidget(new QLineEdit);3.QGridLayout 网格布局多行多列表格式排布复杂窗体首选cpp运行QGridLayout *grid new QGridLayout; grid-addWidget(new QLabel(账号),0,0); // 第0行第0列 grid-addWidget(new QLineEdit,0,1); // 第0行第1列 grid-addWidget(new QLabel(密码),1,0); grid-addWidget(new QLineEdit,1,1);二、布局嵌套水平布局放进垂直布局实现复杂组合界面是项目 UI 常规写法。cpp运行QVBoxLayout *mainV new QVBoxLayout(w); mainV-addLayout(hlay); // 水平布局嵌入垂直布局 mainV-addLayout(grid); // 网格布局嵌入垂直布局三、常用 APIsetContentsMargins (左上右下)设置布局四边边距setSpacing (int)统一控件间距。