На этом шаге рассмотрим горизонтальное размещение QHBoxLayout.
Объекты класса QHBoxLayout упорядочивают все виджеты только в горизонтальном порядке, слева направо. Его применение аналогично использованию класса QBoxLayout, но передавать в конструктор дополнительный параметр, задающий горизонтальный порядок размещения, не нужно. Окно программы, которая упорядочивает виджеты при помощи объекта класса QHBoxLayout, показано на рис. 1.

Рис.1. Размещение кнопок по горизонтали
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
app.setApplicationDisplayName("QHBoxLayout");
QWidget wgt;
//Cоздаются три кнопки A, B и C
//(указатели pcmdA, pcmdB и pcmdC)
QPushButton* pcmdA = new QPushButton("A");
QPushButton* pcmdB = new QPushButton("B");
QPushButton* pcmdC = new QPushButton("C");
//Создается объект класса QHBoxLayout
//для горизонтального размещения дочерних виджетов
QHBoxLayout* phbxLayout = new QHBoxLayout;
//Метод QLayout::setMargin() устанавливает
//толщину рамки 10 пикселов
phbxLayout->setMargin(10);
//Метод QLayout::setSpacing() задает
//расстояние между виджетами равное 20 пикселам
phbxLayout->setSpacing(20);
//Три вызова метода QLayout::addWidget() добавляют
//виджеты кнопок в компоновку
phbxLayout->addWidget(pcmdA);
phbxLayout->addWidget(pcmdB);
phbxLayout->addWidget(pcmdC);
wgt.setLayout(phbxLayout);
wgt.show();
return app.exec();
}     
Файлы примера можно взять здесь.
На следующем шаге рассмотрим вертикальное размещение QVBoxLayout.