71常用控件_QHBoxLayout的使用
目录
代码⽰例: 使⽤ QHBoxLayout 管理控件
代码⽰例: 嵌套的 layout
⽔平布局
使⽤ QHBoxLayout 表⽰垂直的布局管理器. H 是 horizontal 的缩写.
核⼼属性 (和 QVBoxLayout 属性是⼀致的)
属性 | 说明 |
---|---|
layoutLeftMargin | 左侧边距 |
layoutRightMargin | 右侧边距 |
layoutTopMargin | 上方边距 |
layoutBottomMargin | 下方边距 |
layoutSpacing | 相邻元素之间的间距 |
代码⽰例: 使⽤ QHBoxLayout 管理控件
1) 编写代码, 创建布局管理器和三个按钮. 并且把按钮添加到布局管理器中

#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QHBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton* button1 = new QPushButton("按钮1");QPushButton* button2 = new QPushButton("按钮2");QPushButton* button3 = new QPushButton("按钮3");QHBoxLayout* layout = new QHBoxLayout();layout->addWidget(button1);layout->addWidget(button2);layout->addWidget(button3);this->setLayout(layout);
}Widget::~Widget()
{delete ui;
}
2) 运⾏程序, 可以看到此时界⾯上的按钮就存在于布局管理器中. 随着窗⼝尺⼨变化⽽发⽣改变.
此时三个按钮的尺⼨和位置, 都是⾃动计算出来的.
Layout ⾥⾯可以再嵌套上其他的 layout, 从⽽达到更复杂的布局效果.
代码⽰例: 嵌套的 layout
1) 在代码中创建以下内容
• 使⽤ addLayout 给 layout 中添加⼦ layout.

2) 执⾏程序, 观察结果

结合 QHBoxLayout 和 QVBoxLayout , 就可以做出各种复杂的界⾯了.
布局管理器之间,也能进行嵌套~~
#include "widget.h"
#include "ui_widget.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 创建垂直的布局管理器QVBoxLayout* vlayout = new QVBoxLayout();// 添加两个按钮进去QPushButton* button1 = new QPushButton("按钮1");QPushButton* button2 = new QPushButton("按钮2");vlayout->addWidget(button1);vlayout->addWidget(button2);// 创建水平的布局管理器QHBoxLayout* hlayout = new QHBoxLayout();// 添加两个按钮进去QPushButton* button3 = new QPushButton("按钮3");QPushButton* button4 = new QPushButton("按钮4");hlayout->addWidget(button3);hlayout->addWidget(button4);// 把水平布局管理器添加到垂直布局管理器内部vlayout->addLayout(hlayout);this->setLayout(vlayout);}Widget::~Widget()
{delete ui;
}