1.设计师实现
Qt中的布局管理器主要包括QBoxLayout基本布局管理器、QGridLayout栅格布局管理器和QFormLayout窗体布局管理器,而基本布局管理器又分为QHBoxLayout水平布局管理器和QVBoxLayout垂直布局管理器。
垂直布局管理器(Vertical Layout)和拆分器/分裂器(QSplitter)可以对元素进行自动排列。
右键界面,选择布局->栅格布局(Ctrl+G),这是窗口的整个元素部件就会填充整个窗口,运行程序时元素部件也会随着窗口大小的调整动态变化。
2.纯代码实现
#include <QPushButton>
#include <QLineEdit>
#include <QGridLayout>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建按钮对象,this指当前窗口为其部件的父对象
QPushButton *btn = new QPushButton(this);
//创建文本编辑器对象
QLineEdit *edit = new QLineEdit(this);
//创建栅格布局对象,这里不传入this指针的原因是QGridLayout实例化时不需要指定关系
QGridLayout *layout = new QGridLayout;
layout -> addWidget(btn,0,0,1,1);
layout -> addWidget(edit,0,1,1,2);
layout -> addWidget(ui->textEdit,1,0,1,3);//这里的textEdit是在设计师界面里手动拖入的元素部件
//调用窗口成员中心部件(中心部件是主窗口中用于放置其他控件和布局的区域)
//调用其设置方法设置为设置为对应的栅格布局对象
ui -> centralwidget -> setLayout(layout);
}
未完待续。。。