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();
}
效果: