Home · All Classes · Main Classes · Grouped Classes · Modules · Functions

Описание Класса QBoxLayout
[модуль QtGui]

Класс QBoxLayout выравнивает дочерние виджеты горизонтально или вертикально. Далее...

#include <QBoxLayout>

Наследует QLayout.

Наследуется QHBoxLayout и QVBoxLayout.

Открытые Типы

Открытые Функции

Защищенные Функции

Дополнительные Унаследованные Члены


Подробное Описание

Класс QBoxLayout выравнивает дочерние виджеты горизонтально или вертикально.

QBoxLayout занимает отведенное ему пространство (родительским компоновщиком или parentWidget()), разделяет его на ряд ячеек и заставляет каждый управляемый виджет заполнить одну ячейку.

Горизонтальный линейный компоновщик с пятью дочерними виджетами

Если ориентация QBoxLayout равна Qt::Horizontal, то ячейки располагаются в строку с подходящими размерами. Каждый виджет (или другая ячейка) получит, как минимум, свой минимальный размер, а, как максимум, свой максимальный размер. Любое избыточное место разделсятся согласно факторам растяжения (подробнее об этом ниже).

Вертикальный линейный компоновщик с пятью дочерними виджетами

Если ориентация QBoxLayout равна Qt::Vertical, то ячейки располагаются в столбец с подходящими размерами.

Самый легкий способ создания QBoxLayout - это использование одного из удобных классов, например, QHBoxLayout (для компоновщиков с ориентацией, равной Qt::Horizontal) или QVBoxLayout (для компоновщиков с ориентацией, равной Qt::Vertical). Вы также можете использовать констуктор QBoxLayout непосредственно, определив направление, как LeftToRight, RightToLeft, TopToBottom или BottomToTop.

Если QBoxLayout не является компоновщиком верхнего уровня (т.е. не управляет всей областью виджета и его дочерними виджетами), то Вы должны добавить его в родительский компоновщик прежде, чем будете делать с ним что-либо. Нормальный способ добавления компоновщика - это вызов parentLayout->addLayout().

Как только Вы сделаете это, Вы можете добавлять ячейки в QBoxLayout используя следующие функции:

Используйте insertWidget(), insertSpacing(), insertStretch() или insertLayout() для вставки ячейки в определенную позицию компоновщика.

QBoxLayout также хранит две ширины краев:

Ширина краев по умолчанию зависит от стиля. Ширина краев по умолчанию в стилях Qt равна 9 для виджетов и 11 для окон верхнего уровня. Интервал между виджетами по умолчанию такой-же, как ширина краев у компоновщика верхнего уровня или как у родительского компоновщика.

Для удаления виджета из компоновщика вызовите removeWidget(). Вызов QWidget::hide() для виджета эффективно удаляет виджет из компоновщика до вызова QWidget::show().

Вам всегда удобнее использовать QVBoxLayout и QHBoxLayout, чем QBoxLayout, из-за их удобных конструкторов.

См. также QGridLayout, QStackedLayout и Layout Classes.


Описание Типов Членов

enum QBoxLayout::Direction

Данный тип перечисления используется для определения направления ячеек компоновщика.

КонстантаЗначениеОписание
QBoxLayout::LeftToRight0Горизонтальное слева-направо.
QBoxLayout::RightToLeft1Горизонтальное справа-налево.
QBoxLayout::TopToBottom2Вертикальное сверху-вниз.
QBoxLayout::BottomToTop3Вертикальное снизу-вверх.

Описание Функций-Членов

QBoxLayout::QBoxLayout ( Direction dir, QWidget * parent = 0 )

Создает новый QBoxLayout с направление расположения dir и родительским виджетом parent.

См. также direction().

QBoxLayout::~QBoxLayout ()

Разрушает компоновщик.

Виджеты компоновщика при этом не разрушаются.

void QBoxLayout::addLayout ( QLayout * layout, int stretch = 0 )

Добавляет ячейку с компоновщиком layout в конец ячеек, с фактором растяжения stretch.

См. также insertLayout(), addItem() и addWidget().

void QBoxLayout::addSpacing ( int size )

Добавляет нерастягиваемое пространство с размером size в конец данного компоновщика. QBoxLayout по предоставляет значения по умолчанию для ширины внешних краев и расстояния между виджетами. Данная функция добавляет дополнительное пространство.

См. также insertSpacing() и addItem().

void QBoxLayout::addStretch ( int stretch = 0 )

Добавляет растягиваемое пространство с нулевым минимальным размером и фактором растяжения stretch в конец данного компоновщика.

См. также insertStretch() и addItem().

void QBoxLayout::addStrut ( int size )

Ограничивает изменение размера, перпендикулярного направлению компоновки, (например, высоты, если направление компоновки равно LeftToRight) минумом, равным size. Другие ограничения могут увеличить предел.

См. также addItem().

void QBoxLayout::addWidget ( QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0 )

В конец данного компоновщика добавляет виджет widget в фактором растяжения stretch и выравниванием alignment.

Фактор растяжения применяется только в направлении direction QBoxLayout и действует относительно других виджетов в QBoxLayout. Виджеты и ячейки с большим фактором растяжения растягиваются больше.

Если фактор растяжения равен 0 и ни что другое в QBoxLayout не имеет фактор растяжения, больший чем 0, то пространство распределяется согласно QWidget:sizePolicy() всех виджетов, входящих в компоновщик.

Выравнивание задается с помощью alignment. Выравнивание по умолчанию равно 0, что означает заполнение виджетом всей ячейки.

См. также insertWidget(), addItem(), addLayout(), addStretch(), addSpacing() и addStrut().

Direction QBoxLayout::direction () const

Возвращает направление компоновщика. addWidget() и addSpacing() работают в этом направлении; растяжение также работает в этом направлении.

См. также setDirection(), QBoxLayout::Direction, addWidget() и addSpacing().

void QBoxLayout::insertItem ( int index, QLayoutItem * item )   [protected]

Вставляет элемент item в компоновщик, в позиции index. Если index отрицательно, то элемент добавляется в конец.

Внимание: Не вызывайте QLayout::insertChildLayout() если item является QLayout.

См. также addItem(), insertWidget(), insertLayout(), insertStretch() и insertSpacing().

void QBoxLayout::insertLayout ( int index, QLayout * layout, int stretch = 0 )

Вставляет компоновщик layout в позицию index с фактором растяжения stretch. Если index отрицательно, то компоновщик добавляется в конец.

layout становится дочерним компоновщик данного компоновщика.

См. также addLayout() и insertItem().

void QBoxLayout::insertSpacing ( int index, int size )

Вставляет нерастяжимое пространство с размером size в позицию index. Если index отрицательно, то пространство добавляется в конец.

Компоновщик имеет ширину краев и расстояние между виджетами по умолчанию. Данная функция добавляет дополнительное пространство.

См. также addSpacing() и insertItem().

void QBoxLayout::insertStretch ( int index, int stretch = 0 )

Вставляет растяжимое пространство с нулевым минимальным размером и фактором растяжения stretch в позицию index. Если index отрицательно, то пространство добавляется в конец.

См. также addStretch() и insertItem().

void QBoxLayout::insertWidget ( int index, QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0 )

Вставляет виджет widget с фактором растяжения stretch и выравнивания alignment в позицию index. Если index отрицательно, то виджет добавляется в конец.

Фактор растяжения применяется только в направлении direction QBoxLayout относительно других ячеек и виджетов данного QBoxLayout. Виджеты и ячейки с большим фактором растяжения растягиваются больше.

Если фактор растяжения равен 0 и ни что другое в QBoxLayout не имеет фактор растяжения, больший чем 0, то пространство распределяется согласно QWidget:sizePolicy() всех виджетов, входящих в компоновщик.

Выравнивание задается с помощью alignment. Выравнивание по умолчанию равно 0, что означает заполнение виджетом всей ячейки.

См. также addWidget() и insertItem().

void QBoxLayout::invalidate ()   [virtual]

Сбрасывает кэшированную информацию.

Функция повторно реализована по отношению QLayoutItem.

void QBoxLayout::setDirection ( Direction direction )

Устанавливает направление данного компоновщика в direction.

См. также direction().

bool QBoxLayout::setStretchFactor ( QWidget * widget, int stretch )

Устанавливает фактор растяжения виджета widget в stretch и возвращает true, если виджет widget найден в данном компоновщике (не в дочерних компоновщиках); в противном случае возвращает false.

См. также setAlignment().

bool QBoxLayout::setStretchFactor ( QLayout * layout, int stretch )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает фактор растяжения компоновщика layout в stretch и возвращает true, если компоновщик layout найден в данном компоновщике (не в дочерних компоновщиках); в противном случае возвращает false.


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz