QVBoxLayout 為垂直一格一格的排版樣式,而 QHBoxLayout 則是水平一格一格的排版樣式,舉例如下
Demo3.h
#ifndef DEMO3_H #define DEMO3_H #include <QWidget> class QPushButton; class Demo3 : public QWidget { Q_OBJECT public: Demo3(QWidget *parent = 0); }; #endif
Demo3.cpp
#include <QtGui> #include "Demo3.h" Demo3::Demo3(QWidget *parent) : QWidget(parent) { QPushButton *b1, *b2, *b3, *b4, *b5; b1 = new QPushButton(tr("b1")); b2 = new QPushButton(tr("b2")); b3 = new QPushButton(tr("b3")); b4 = new QPushButton(tr("b4")); b5 = new QPushButton(tr("b5")); QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(b1); layout->addWidget(b2); layout->addWidget(b3); layout->addWidget(b4); layout->addWidget(b5); setLayout(layout); setWindowTitle(tr("Demo3")); }
main.cpp
#include <QtGui> #include "Demo3.h" int main(int argv, char **args) { QApplication app(argv, args); Demo3 demo; demo.show(); return app.exec(); }
效果:
其他常見的像是一列兩欄的 QFormLayout ,可供輸入表單之用,舉例如下
Demo4.h
#ifndef DEMO4_H #define DEMO4_H #include <QWidget> class QPushButton; class QLineEdit; class Demo4 : public QWidget { Q_OBJECT public: Demo4(QWidget *parent = 0); }; #endif
Demo4.cpp
#include <QtGui> #include "Demo4.h" Demo4::Demo4(QWidget *parent) : QWidget(parent) { QPushButton *b1, *b2; QLineEdit *c1, *c2; b1 = new QPushButton(tr("b1")); c1 = new QLineEdit; b2 = new QPushButton(tr("b2")); c2 = new QLineEdit; QFormLayout *layout = new QFormLayout; layout->addRow(b1, c1); layout->addRow(b2, c2); setLayout(layout); setWindowTitle(tr("Demo4")); }
main.cpp
#include <QtGui> #include "Demo4.h" int main(int argv, char **args) { QApplication app(argv, args); Demo4 demo; demo.show(); return app.exec(); }