概述
Qt提供了QHBoxLayout类(水平排列布局),QVBoxLayout类(垂直排列布局),QGridLayout类(网格排列布局)等基本布局管理。它们之间的继承关系如下图
布局中常用的方法有addWidget()和addLayout()
addWidget()方法用于加入需要布局的控件void addWidget( QWidget *widget, //需要插入的控件对象 int fromRow, //插入的行 int fromColum, //插入的列 int rowSpan, //表示占用的行数 int columSpan, //表示占用的列数 Qt::Alignment alignment=0 //描述各个控件的对齐方式)
addLayout()方法用于加入子布局void QGridLayout::addLayout( QLayout *layout, //表示需要插入的子布局对象 int row, //插入的起始行 int column, //插入的起始列 int rowSpan, //表示占用的行数 int columSpan. //表示占用的列数 Qt::Alignment alignment = Qt::Alignment() //指定对齐方式)
注意1
LeftLayout=new QGridLayout(); //由于LeftLayout布局管理器不是主布局管理器,所以不用指定父窗口QGridLayout *mainLayout=new QGridLayout(this); //mainLayout实现主布局,所有要指定父窗口
注意2
QHBoxLayout默认采取的是以自左向右的方式顺序排列插入控件或子布局,也可以通过setDirection()方法设定排列的顺序,如TopRightLayout->setDirection(QBoxLayout::RightToLeft);
QVBoxLayout默认采取的是以自上而下的方式顺序插入控件和子布局,也可以通过调用setDirection()方法设定排列的顺序
注意3 QHBoxLayout是水平布局,可以设定水平各个控件之间的间距TopRightLayout=new QHBoxLayout();TopRightLayout->setSpacing(20); //设定各个控件之间的间距为20