#include "mywidget.h"
#include "ui_mywidget.h"
#include <QVBoxLayout>
#include <QGridLayout>
//布局管理器:QBoxLayout-基本布局管理器;QGridLayout-栅格布局管理器;
//QFormLayout-表单布局管理器;QStackedLayout-栈布局管理器
//单击UI主界面并按下Ctrl + L 快捷键;或者或单击设计器上边栏中的垂直布局按钮;
//或者在UI主界面右击,在弹出的菜单栏中选择“布局-> 垂直布局”,此时部件填满整个界面,并随窗口的变化而变化。
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyWidget)
{
ui->setupUi(this);
#if 0
//QBoxLayout 有两个子类 QHBoxLayout水平布局管理器和 QVBoxLayout垂直布局管理器。
QVBoxLayout *layoutBox = new QVBoxLayout; //新建垂直布局管理器
layoutBox->addWidget(ui->fontComboBox); //向布局管理器中添加部件
//addWidget向布局管理器的末尾添加部件,insertWidget可以实现向指定位置添加部件。
layoutBox->addWidget(ui->textEdit);
layoutBox->setSpacing(50); //设置部件间的间隔
layoutBox->setContentsMargins(0,0,50,100);
//设置部件管理器到边界的距离,4个参数顺序为左,上,右,下。
setLayout(layoutBox); //将这个部件设置为MyWidget类的布局
#endif
#if 0
//QGridLayout-栅格布局管理器
QGridLayout *layoutGrid = new QGridLayout;
//添加部件,从第0行0列开始(起始位置),占据1行2列(占据的空间大小)
layoutGrid->addWidget(ui->fontComboBox,0,0,1,2);
//添加部件,从第0行2列开始,占据1行1列
layoutGrid->addWidget(ui->pushButton,0,2,1,1);
//fontComboBox部件和pushbutton部件的长度是2:1
//添加部件,从第1行0列开始,占据1行3列
layoutGrid->addWidget(ui->textEdit,1,0,1,3);
setLayout(layoutGrid);
#endif
#if 1
//QFormLayout-表单布局管理器,用来管理表格的输入部件及其相关的标签,左边是一些标签,右边是一些输入部件。
QFormLayout *layoutForm = new QFormLayout;
QLineEdit *name = new QLineEdit;
QLineEdit *sex = new QLineEdit;
QLineEdit *age = new QLineEdit;
QLineEdit *mail = new QLineEdit;
layoutForm->addRow("Name",name);
layoutForm->addRow("Sex",sex);
layoutForm->addRow("Age",age);
layoutForm->addRow("Mail",mail);
setLayout(layoutForm);
#endif
}
MyWidget::~MyWidget()
{
delete ui;
}