在这里跟大家简单的分享下比较基础的布局器的使用。Qt下常用的布局器为三种,水平布局器(QHBoxLayout)、垂直布局器(QVBoxLayout)和栅格布局器(QGridLayout)这三种。单个布局器的简单使用如下:
#ifndef USINGLAYOUT_H #define USINGLAYOUT_H #include <QWidget> #include"QLayout" #include"QHBoxLayout" #include"QVBoxLayout" #include"QGridLayout" #include"QPushButton" #include"QLabel" class UsingLayout : public QWidget { Q_OBJECT public: UsingLayout(QWidget *parent = 0); ~UsingLayout(); public: QPushButton* btn1; QPushButton* btn2; QPushButton* btn3; QPushButton* btn4; }; #endif // USINGLAYOUT_H #include "usinglayout.h" #include"QString" UsingLayout::UsingLayout(QWidget *parent) : QWidget(parent) { btn1 = new QPushButton(this); btn2 = new QPushButton(this); btn3 = new QPushButton(this); btn4 = new QPushButton(this); #if 0 //使用QHBoxLayout==》水平布局器 QHBoxLayout* hlayout = new QHBoxLayout(this); hlayout->addWidget(btn1); hlayout->addWidget(btn2); hlayout->addWidget(btn3); hlayout->addWidget(btn4); this->setLayout(hlayout); this->show(); #endif #if 0 //使用QVBoxLayout==》垂直布局器 QVBoxLayout* vlayout = new QVBoxLayout(this); vlayout->addWidget(btn1); vlayout->addWidget(btn2); vlayout->addWidget(btn3); vlayout->addWidget(btn4); this->setLayout(vlayout); this->show(); #endif #if 1 //使用QGridLayout==》栅格布局器 QGridLayout* glayout = new QGridLayout(this); glayout->addWidget(btn1);//默认是在(0,0) glayout->addWidget(btn2,0,1); glayout->addWidget(btn3,0,2); glayout->addWidget(btn4,1,0); this->setLayout(glayout); this->show(); #endif } UsingLayout::~UsingLayout() { }效果如下图所示:
【水平布局器】
【垂直布局器】
【栅格布局器】