Описание класса QGraphicsLinearLayout
|
QGraphicsLinearLayout ( QGraphicsLayoutItem * parent = 0 ) | |
QGraphicsLinearLayout ( Qt::Orientation orientation, QGraphicsLayoutItem * parent = 0 ) | |
virtual | ~QGraphicsLinearLayout () |
void | addItem ( QGraphicsLayoutItem * item ) |
void | addStretch ( int stretch = 1 ) |
Qt::Alignment | alignment ( QGraphicsLayoutItem * item ) const |
void | insertItem ( int index, QGraphicsLayoutItem * item ) |
void | insertStretch ( int index, int stretch = 1 ) |
qreal | itemSpacing ( int index ) const |
Qt::Orientation | orientation () const |
void | removeItem ( QGraphicsLayoutItem * item ) |
void | setAlignment ( QGraphicsLayoutItem * item, Qt::Alignment alignment ) |
void | setItemSpacing ( int index, qreal spacing ) |
void | setOrientation ( Qt::Orientation orientation ) |
void | setSpacing ( qreal spacing ) |
void | setStretchFactor ( QGraphicsLayoutItem * item, int stretch ) |
qreal | spacing () const |
int | stretchFactor ( QGraphicsLayoutItem * item ) const |
virtual int | count () const |
virtual void | invalidate () |
virtual QGraphicsLayoutItem * | itemAt ( int index ) const |
virtual void | removeAt ( int index ) |
virtual void | setGeometry ( const QRectF & rect ) |
virtual QSizeF | sizeHint ( Qt::SizeHint which, const QSizeF & constraint = QSizeF() ) const |
Класс 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 учитывает подсказки о размере и политики размера каждого элемента, и, когда компоновка содержит больше пространства чем могут заполнить элементы, каждый элемент упорядочивается в соответствии с выравниванием компоновки для этого элемента. Вы можете установить выравнивание для каждого элемента вызвав setAlignment(), и проверить выравнивание для всех элементов, вызвав alignment(). По умолчанию элементы центрируются по вертикали и горизонтали.
Между элементами компоновщик распределяет немного пространства. Конкретный объём пространства зависит от текущего стиля управляемого виджета, но в общем случае интервал равен 4. Вы также можете установить собственный интервал, вызвав setSpacing(), и получить значение текущего интервала вызвав spacing(). Если вы хотите настроить отдельные интервалы для ваших элементов, вы можете вызвать setItemSpacing().
Вы можете назначить коэффициент растяжения каждому элементу чтобы контролировать сколько пространства он получит по сравнению с другими элементами. По умолчанию два одинаковых виджета, упорядоченные в линейном компоновщике, будут иметь одинаковый размер, но если у первого виджета коэффициент растяжения равен 1, а у второго коэффициент растяжения равен 2, первый виджет получит 1/3 доступного пространства, а второй получит 2/3.
QGraphicsLinearLayout рассчитывает распределение размеров складывая коэффициенты растяжений всех элементов, а затем деля доступное пространство соответственно. По умолчанию коэффициент растяжения для всех элементов равен 0; коэффициент равный 0 означает что у элемента нет определённого коэффициента расширения; это тоже самое что и установка коэффициента растяжения равным 1. Коэффициент растяжения применяется к доступному пространству только в продольном направлении компоновки (следуя его ориентации). Если вы хотите контролировать и горизонтальное и вертикальной растяжение элементов, вы можете использовать QGraphicsGridLayout.
QGraphicsLinearLayout очень похож на QVBoxLayout и QHBoxLayout, но в отличае от этих классов, он используется для управления QGraphicsWidget и QGraphicsLayout вместо QWidget и QLayout.
Смотрите также QGraphicsGridLayout и QGraphicsWidget.
Создаёт объект QGraphicsLinearLayout используя ориентацию Qt::Horizontal. parent передаётся в конструктор QGraphicsLayout.
Создаёт объект QGraphicsLinearLayout. Вы можете передать ориентацию orientation для компоновщика, или горизонтальную, или вертикальную, а parent передаётся в конструктор QGraphicsLayout.
Уничтожает объект QGraphicsLinearLayout.
Эта вспомогательная функция эквивалентна вызову insertItem(-1, item).
Эта вспомогательная функция эквивалентна вызову insertStretch(-1, stretch).
Возвращает выравнивание для элемента item. Выравнивание по умолчанию равно Qt::AlignCenter.
Выравнивание определяет как элемент располагается внутри назначенного ему пространства в случае, когда доступно больше пространства, чем он может занять.
Смотрите также setAlignment().
Переопределено из QGraphicsLayout::count().
Вставляет элемент item в компоновку на индекс index, или перед любым элементом с индексом index.
Смотрите также addItem(), itemAt(), insertStretch() и setItemSpacing().
Вставляет подпорку stretch на индекс index, или перед любым элементом с индексом index.
Смотрите также addStretch(), setStretchFactor(), setItemSpacing() и insertItem().
Переопределено из QGraphicsLayout::invalidate().
Переопределено из QGraphicsLayout::itemAt().
При переборе значений начиная с 0 и выше, она возращает элементы в порядке визуального расположения.
Возвращает интервал после элемента с индексом index.
Смотрите также setItemSpacing().
Возвращает ориентацию компоновки.
Смотрите также setOrientation().
Переопределено из QGraphicsLayout::removeAt().
Удаляет элемент с индексом index не уничтожая его. Владение элементом передаётся вызвавшему.
Смотрите также removeItem() и insertItem().
Удаляет элемент item из компоновки не уничтожая его. Владение элементом item передаётся вызывающему.
Смотрите также removeAt() и insertItem().
Устанавливает выравнивание элемента item равным alignment. Если выравнивание элемента item меняется, компоновка автоматически становится негодной.
Смотрите также alignment() и invalidate().
Переопределено из QGraphicsLayoutItem::setGeometry().
Устанавливает интервал после элемента с индексом index равным spacing.
Смотрите также itemSpacing().
Меняет ориентацию компоновки на orientation. Изменение ориентации компоновщика автоматически признает компоновщик недействительным.
Смотрите также orientation().
Устанавливает интервал компоновщика равным spacing. Интервал относится к вертикальным и горизонтальным промежуткам между элементами.
Смотрите также spacing(), setItemSpacing(), setStretchFactor() и QGraphicsGridLayout::setSpacing().
Устанавливает коэффициент растяжения элемента item равным stretch. Если коэффициент растяжения элемента меняется, то эта функция признаёт компоновку недействительной.
Установка stretch равным 0 удаляет коэффициент растяжения элемента и эквивалентно установке коэффициента растяжения stretch равным 1.
Смотрите также stretchFactor().
Переопределено из QGraphicsLayoutItem::sizeHint().
Возвращает интервал компоновщика. Интервал относится к вертикальным и горизонтальным промежуткам между элементами.
Смотрите также setSpacing().
Возвращает коэффициент растяжения элемента item. По умолчанию коэффициент растяжения равен 0, означая что у элемента нет назначенного коэффициента растяжения.
Смотрите также setStretchFactor().
Авторские права © 2010 Nokia Corporation и/или её дочерние компании | Торговые марки | Qt 4.6.4 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |