Описание класса QGraphicsLinearLayout [модуль QtGui]
Класс QGraphicsLinearLayout предоставляет горизонтальный или вертикальный компоновщик для управления виджетами в графическом представлении. Далее...
#include <QGraphicsLinearLayout> Унаследован от QGraphicsLayout.
Этот класс был введён в Qt 4.4.
Открытые функции
Дополнительные унаследованные члены
Подробное описание
Класс QGraphicsLinearLayout предоставляет горизонтальный или вертикальный компоновщик для управления виджетами в графическом представлении.
Ориентация линейного компоновщика по-умолчанию равна Qt::Horizontal. Вы можете выбрать вертикальную ориентацию или вызвав setOrientation(), или передав Qt::Vertical в конструктор QGraphicsLinearLayout.
Наиболее общий способ использования QGraphicsLinearLayout это создать объект в куче без родителя, добавить виджеты и компоновки вызвав addItem() и, наконец, назначить компоновщик виджету вызвав QGraphicsWidget::setLayout().
QGraphicsScene scene;
QGraphicsWidget *textEdit = scene.addWidget(new QTextEdit);
QGraphicsWidget *pushButton = scene.addWidget(new QPushButton);
QGraphicsLinearLayout *layout = new QGraphicsLinearLayout;
layout->addItem(textEdit);
layout->addItem(pushButton);
QGraphicsWidget *form = new QGraphicsWidget;
form->setLayout(layout);
scene.addItem(form);
Вы можете добавить виджеты, компоновки, подпорки (addStretch(), insertStretch() или setStretchFactor()), и интервалы (setItemSpacing()) для линейных компоновок. Компоновщик становится владельцем элементов. В некоторых случаях, когда элемент компоновки также унаследован от QGraphicsItem (например, QGraphicsWidget), имеется неопределённость во владении, так как элемент компоновки принадлежит двум иерархиям владения. Как это обрабатывать смотрите в документации QGraphicsLayoutItem::setOwnedByLayout(). Вы можете получить доступ к каждому элементу компоновки вызывая count() и itemAt(). Вызовы removeAt() или removeItem() удалят элемент из компоновки, не разрушая его.
Подсказки о размерах и политики размеров в QGraphicsLinearLayout
QGraphicsLinearLayout учитывает подсказки о размере и политики размера каждого элемента, и, когда компоновка содержит больше пространства чем могут заполнить элементы, каждый элемент упорядочивается в соответствии с выравниванием компоновки для этого элемента. Вы можете установить выравнивание для каждого элемента вызвав setAlignment(), и проверить выравнивание для всех элементов, вызвав alignment(). По-умолчанию, элементы центрируются по вертикали и горизонтали.
Интервалы внутри QGraphicsLinearLayout
Между элементами компоновщик распределяет немного пространства. Конкретный объём пространства зависит от текущего стиля управляемого виджета, но в общем случае интервал равен 4. Вы также можете установить собственный интервал, вызвав setSpacing(), и получить значение текущего интервала вызвав spacing(). Если вы хотите настроить отдельные интервалы для ваших элементов, вы можете вызвать setItemSpacing().
Коэффициент растяжения в QGraphicsLinearLayout
Вы можете назначить коэффициент растяжения каждому элементу чтобы контролировать сколько пространства он получит по сравнению с другими элементами. По-умолчанию, два одинаковых виджета, упорядоченных в линейном компоновщике, будут иметь одинаковый размер, но если у первого виджета коэффициент растяжения равен 1, а у второго коэффициент растяжения равен 2, первый виджет получит 1/3 доступного пространства, а второй получит 2/3.
QGraphicsLinearLayout рассчитывает распределение размеров складывая коэффициенты растяжений всех элементов, а затем деля доступное пространство соответственно. По-умолчанию коэффициент растяжения для всех элементов равен 0; коэффициент равный 0 означает что у элемента нет определённого коэффициента расширения; это тоже самое что и установка коэффициента растяжения равным 1. Коэффициент растяжения применяется к доступному пространству только в продольном направлении компоновки (следуя его ориентации). Если вы хотите контролировать и горизонтальное и вертикальной растяжение элементов, вы можете использовать QGraphicsGridLayout.
QGraphicsLinearLayout в сравнении с другими компоновщиками
QGraphicsLinearLayout очень похож на QVBoxLayout и QHBoxLayout, но в отличае от этих классов, он используется для управления QGraphicsWidget и QGraphicsLayout вместо QWidget и QLayout.
Смотрите также QGraphicsGridLayout и QGraphicsWidget.
Описание функций-членов
QGraphicsLinearLayout::QGraphicsLinearLayout ( QGraphicsLayoutItem * parent = 0 )
Создаёт объект QGraphicsLinearLayout используя ориентацию Qt::Horizontal. parent передаётся в конструктор QGraphicsLayout.
QGraphicsLinearLayout::QGraphicsLinearLayout ( Qt::Orientation orientation, QGraphicsLayoutItem * parent = 0 )
Создаёт объект QGraphicsLinearLayout. Вы можете передать ориентацию orientation для компоновщика, или горизонтальную, или вертикальную, а parent передаётся в конструктор QGraphicsLayout.
QGraphicsLinearLayout::~QGraphicsLinearLayout () [virtual]
Уничтожает объект QGraphicsLinearLayout.
void QGraphicsLinearLayout::addItem ( QGraphicsLayoutItem * item )
Эта вспомогательная функция эквивалентна вызову insertItem(-1, item).
void QGraphicsLinearLayout::addStretch ( int stretch = 1 )
Эта вспомогательная функция эквивалентна вызову insertStretch(-1, stretch).
Возвращает выравнивание для элемента item. Выравнивание по-умолчанию равно Qt::AlignCenter.
Выравнивание определяет как элемент располагается внутри назначенного ему пространства в случае, когда доступно больше пространства, чем он может занять.
Смотрите также setAlignment().
void QGraphicsLinearLayout::insertItem ( int index, QGraphicsLayoutItem * item )
Вставляет элемент item в компоновку на индекс index, или перед любым элементом с индексом index.
Смотрите также addItem(), itemAt(), insertStretch() и setItemSpacing().
void QGraphicsLinearLayout::insertStretch ( int index, int stretch = 1 )
Вставляет подпорку stretch на индекс index, или перед любым элементом с индексом index.
Смотрите также addStretch(), setStretchFactor(), setItemSpacing() и insertItem().
qreal QGraphicsLinearLayout::itemSpacing ( int index ) const
Возвращает интервал после элемента с индексом index.
Смотрите также setItemSpacing().
Qt::Orientation QGraphicsLinearLayout::orientation () const
Возвращает ориентацию компоновки.
Смотрите также setOrientation().
void QGraphicsLinearLayout::removeAt ( int index ) [virtual]
Удаляет элемент с индексом index не уничтожая его. Владение элементом передаётся вызвавшему.
Переопределено из QGraphicsLayout.
Смотрите также removeItem() и insertItem().
void QGraphicsLinearLayout::removeItem ( QGraphicsLayoutItem * item )
Удаляет элемент item из компоновки не уничтожая его. Владение элементом item передаётся вызывающему.
Смотрите также removeAt() и insertItem().
Устанавливает выравнивание элемента item равным alignment. Если выравнивание элемента item меняется, компоновка автоматически становится негодной.
Смотрите также alignment() и invalidate().
void QGraphicsLinearLayout::setItemSpacing ( int index, qreal spacing )
Устанавливает интервал после элемента с индексом index равным spacing.
Смотрите также itemSpacing().
void QGraphicsLinearLayout::setOrientation ( Qt::Orientation orientation )
Меняет ориентацию компоновки на orientation. Изменение ориентации компоновщика автоматически признает компоновщик недействительным.
Смотрите также orientation().
void QGraphicsLinearLayout::setSpacing ( qreal spacing )
Устанавливает интервал компоновщика равным spacing. Интервал относится к вертикальным и горизонтальным промежуткам между элементами.
Смотрите также spacing(), setItemSpacing(), setStretchFactor() и QGraphicsGridLayout::setSpacing().
void QGraphicsLinearLayout::setStretchFactor ( QGraphicsLayoutItem * item, int stretch )
Устанавливает коэффициент растяжения элемента item равным stretch. Если коэффициент растяжения элемента меняется, то эта функция признаёт компоновку недействительной.
Установка stretch равным 0 удаляет коэффициент растяжения элемента и эквивалентно установке коэффициента растяжения stretch равным 1.
Смотрите также stretchFactor().
qreal QGraphicsLinearLayout::spacing () const
Возвращает интервал компоновщика. Интервал относится к вертикальным и горизонтальным промежуткам между элементами.
Смотрите также setSpacing().
int QGraphicsLinearLayout::stretchFactor ( QGraphicsLayoutItem * item ) const
Возвращает коэффициент растяжения элемента item. По-умолчанию коэффициент растяжения равен 0, означая что у элемента нет назначенного коэффициента растяжения.
Смотрите также setStretchFactor().
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies) |
Торговые марки |
Qt 4.5.3 |
|