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

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

Класс QLayout - это базовый класс менеджеров компоновки. Далее...

#include <QLayout>

Наследует QObject и QLayoutItem.

Наследуется QBoxLayout, QGridLayout и QStackedLayout.

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

Свойства

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

Статический Открытые Члены

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

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


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

Класс QLayout - это базовый класс менеджеров компоновки.

Это абстрактный базовый класс наследуемый конкретными классами QBoxLayout, QGridLayout и QStackedLayout.

Для пользователей подклассов QLayout или QMainWindow редко возникает потребность в базовых функциях, предоставляемых QLayout, таких как setSizeConstraint() или setMenuBar(). Для получения более подробной информации см. Классы Компоновки.

Чтобы реализовать собственного менеджера компоновки, реализуйте функции addItem(), sizeHint(), setGeometry(), itemAt() и takeAt(). Вы также должны реализовать minimumSize() чтобы гарантировать, что Ваш компоновщик не переустановит размер в ноль, если у него есть слишком мало места. Поддержка дочерних объектов, чьи высоты зависят от их ширин осуществляется с помощью реализации hasHeightForWidth() и heightForWidth(). Для получения более подробной информации о реализации пользовательских компоновщиков см. примеры Border Layout и Flow Layout.

Управление компоновкой останавливется при удалении менеджера компоновки.

См. также QLayoutItem и Layout Classes.


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

enum QLayout::SizeConstraint

Возможные значения:

КонстантаЗначениеОписание
QLayout::SetDefaultConstraint0The main widget's minimum size is set to minimumSize(), unless the widget already has a minimum size.
QLayout::SetFixedSize3The main widget's size is set to sizeHint(); it cannot be resized at all.
QLayout::SetMinimumSize2The main widget's minimum size is set to minimumSize(); it cannot be smaller.
QLayout::SetMaximumSize4The main widget's maximum size is set to maximumSize(); it cannot be larger.
QLayout::SetMinAndMaxSize5The main widget's minimum size is set to minimumSize() and its maximum size is set to maximumSize().
QLayout::SetNoConstraint1The widget is not constrained.

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


Описание Функций

margin : int

Данное свойство содержит ширину внешних границ компоновщика.

Функции доступа:

См. также spacing.

sizeConstraint : SizeConstraint

Данное свойство содержит режим изменения размеров компоновщика.

Режим по умолчанию: SetDefaultConstraint.

Функции доступа:

spacing : int

Данное свойство содержит расстояние между виджетами внутри компоновщика.

Значение по умолчанию равно -1, что означает, что расстояние между виджетами наследуется от родительского компоновщика или от настроек стиля родительского виджета.

Функции доступа:

См. также margin.


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

QLayout::QLayout ( QWidget * parent )

Создает новый QLayout верхнего уровня с родителем parent. parent может быть равен 0.

У виджета может быть только один компоновщик верхнего уровня. Он возвращается QWidget::layout().

QLayout::QLayout ()

Создает новый дочерний QLayout.

Новый компоновщик должен быть вставлен в другой компоновщик прежде, чем начнет работать управление компоновкой.

bool QLayout::activate ()

Если необходимо, перестраивает расположение для parentWidget().

Обычно Вы не должны вызывать данную функцию, так как она автоматически вызывается в нужные моменты.

См. также update() и QWidget::updateGeometry().

void QLayout::addChildLayout ( QLayout * l )   [protected]

Данная функция вызывается из функций addLayout() подклассов для добавления компоновщика l как подкомпоновщик.

void QLayout::addChildWidget ( QWidget * w )   [protected]

Данная функция вызывается из функций addWidget() подклассов для добавления w в качестве дочернего виджета.

Если w уже присутсвует в компоновщике, ото функцию выдаст предупреждение и удалит w из компоновщика. Поэтому данная функция должна вызыватья перед добавлением w в структуру данных компоновщика.

void QLayout::addItem ( QLayoutItem * item )   [pure virtual]

Реализуется в подклассах для добавления item в компоновщик. Способ добавления определяется в каждом подклассе.

item передается компоновщику по занчению, и удаление этого значения - это забота компоновщика.

void QLayout::addWidget ( QWidget * w )

Добавляет виджет w в данный компоновщик способом, характерным для компоновщика. Данная функция использует addItem().

QRect QLayout::alignmentRect ( const QRect & r ) const   [protected]

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

Результат получается с учетом sizeHint() и expanding(). Он никогда не больше r.

QSize QLayout::closestAcceptableSize ( const QWidget * widget, const QSize & size )   [static]

Возвращает размер, удовлетворяющий всем ограничениям размера виджета widget, включая heightForWidth() и близкий, насколько это возможно к size.

int QLayout::count () const   [pure virtual]

Должно быть повторно реализовано в подклассах для возвращаения количество элементов компоновщика.

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

Qt::Orientations QLayout::expandingDirections () const   [virtual]

Сообщает, может ли компоновщик использовать больше места, чем sizeHint(). Значение Qt::Vertical или Qt::Horizontal означает, что расширяться можно только в одном направлении, а Qt::Vertical | Qt::Horizontal означает, что можно расширяться в обоих направлениях.

Реализация по умолчанию возвращает Qt::Horizontal | Qt::Vertical. Подклассы повторно реализуют данную функцию чтобы возвратить значение, основанное на политике размеров дочерних виджетов.

Повторно реализовано по отношению к QLayoutItem.

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

int QLayout::indexOf ( QWidget * widget ) const   [virtual]

Ищет виджет widget в данном компоновщике (не в дочерних компоновщиках).

Возвращает индекс виджета widget или, если виджет widget не найден, -1.

Реализация по умолчанию перебирает все записи используя itemAt()

bool QLayout::isEnabled () const

Возвращает true если компоновщик доступен; в противном случае возвращает false.

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

QLayoutItem * QLayout::itemAt ( int index ) const   [pure virtual]

Функция должна быть повторно реализована в подклассах для возвращения элемента с индексом index. Если в комповщике данная запись отсутствует, должна возвращать 0. Элементы нумеруются начиная с 0. Если элемент удаляется, оставшиеся элементы должны быть перенумерованы.

Данная функция может использоваться для перебора элементов компоновщика. Следующий код рисует прямоугольник для каждого элемента компоновщика, входящего в структуру виджетов компоновщика.

    static void paintLayout(QPainter *painter, QLayoutItem *item)
    {
        QLayout *layout = item->layout();
        if (layout) {
            for (int i = 0; i < layout->count(); ++i)
                paintLayout(painter, layout->itemAt(i));
        }
        painter->drawRect(lay->geometry());
    }

    void MyWidget::paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
        if (layout())
            paintLayout(&painter, layout());
    }

См. также count() и takeAt().

QSize QLayout::maximumSize () const   [virtual]

Возвращает максимальный размер компоновщика. Возвращает самый большой размер, который может принимать компоновщик при соблюдении настроек.

Возвращаемое значение не должно включать пространство, требуемое для QWidget::setContentsMargins() или menuBar().

Реализация по умолчанию не ограничивает изменение размера.

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

QWidget * QLayout::menuBar () const

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

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

QSize QLayout::minimumSize () const   [virtual]

Возвращает минимальный размер компоновщика. Минимальный размер - это самый меньший размер, который может принимать компоновщик при соблюдении настроек.

Возвращаемое значение не должно включать пространство, требуемое для QWidget::setContentsMargins() или menuBar().

Реализация по умолчанию не ограничивает изменение размера.

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

QWidget * QLayout::parentWidget () const

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

Если компоновщик является подкомпоновщиком, то данная функция возвращает родительский виджет его родительского компоновщика.

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

void QLayout::removeItem ( QLayoutItem * item )

Удаляет элемент item из компоновщика. Уничтожение элемента - забота вызывающего.

Обратите внимание, что item может быть компоновщиком (так как QLayout наследует QLayoutItem).

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

void QLayout::removeWidget ( QWidget * widget )

Удаляет виджет widget из компоновщика. После вызова данной функции, придача виджету разумной геометрии и помещение его в какой-нибудь компоновщик - это забота вызывающего.

См. также removeItem(), QWidget::setGeometry() и addWidget().

bool QLayout::setAlignment ( QWidget * w, Qt::Alignment alignment )

Устанавливает выравнивание виджета w в alignment и возвращает true если виджет w найден в данном компоновщике (не в дочерних компоновщиках); в противном случае возвращает false.

bool QLayout::setAlignment ( QLayout * l, Qt::Alignment alignment )

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

Устанавливает выравнивание компоновщика l в alignment и возвращает true если компоновщик l найден в данном компоновщике (не в дочерних компоновщиках); в противном случае возвращает false.

void QLayout::setEnabled ( bool enable )

Если enable равно true, делает данный компоновщик доступным, в противном случае, делает данный компоновщик недоступным.

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

По умолчанию все компоновщики доступны.

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

void QLayout::setMenuBar ( QWidget * widget )

Указывает менеджеру компоновки разместить панель меню widget на верху parentWidget(), вне QWidget::contentsMargins(). Все дочерние виджеты располагаются ниже нижнего края панели меню.

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

QLayoutItem * QLayout::takeAt ( int index )   [pure virtual]

Должно быть реализовано в подклассах для удаления элемента компоновщика, находящегося в позиции index, из компоновщика и возвращения этого элемента. Если нет такого элемента, функция не должна ничего не делая возвращать 0. Элементы нумеруются начиная с 0. Если элемент удаляется, оставшиеся элементы должны быть перенумерованы.

Следующий фрагмент кода иллюстрирует безопасный способ удаления всех элементов компоновщика:

    QLayoutItem *child;
    while ((child = layout->takeAt(0)) != 0) {
        ...
        delete child;
    }

См. также itemAt() и count().

void QLayout::update ()

Обновляет компоновщик для parentWidget().

Обычно Вы не должны вызывать данную функцию, так как она автоматически вызывается в нужные моменты.

См. также activate() и invalidate().


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz