Spec-Zone.ru › Qt 5.12

Класс QGraphicsLinearLayout

Класс QGraphicsLinearLayout предоставляет горизонтальную или вертикальную компоновку для управления виджетами в представлении графики. Подробнее...

Заголовок: #include <QGraphicsLinearLayout>
qmake: QT += widgets
С момента: Qt 4.4
Наследует: QGraphicsLayout
  • Список всех членов, включая унаследованные

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

QGraphicsLinearLayout(QGraphicsLayoutItem *parent = nullptr)
QGraphicsLinearLayout(Qt::Orientation orientation, QGraphicsLayoutItem *parent = nullptr)
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 override
virtual void invalidate() override
virtual QGraphicsLayoutItem * itemAt(int index) const override
virtual void removeAt(int index) override
virtual void setGeometry(const QRectF &rect) override
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override
  • 10 открытых функций, унаследованных от QGraphicsLayout
  • 35 открытых функций, унаследованных от QGraphicsLayoutItem

Дополнительные унаследованные члены

  • 1 защищённая функция, унаследованная от QGraphicsLayout
  • 3 защищённых функций, унаследованных от QGraphicsLayoutItem

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

Класс 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 = nullptr)

Создаёт экземпляр QGraphicsLinearLayout с ориентацией Qt::Horizontal. parent передаётся конструктору QGraphicsLayout.

QGraphicsLinearLayout::QGraphicsLinearLayout(Qt::Orientation orientation, QGraphicsLayoutItem *parent = nullptr)

Создаёт экземпляр QGraphicsLinearLayout. Вы можете указать orientation (ориентацию) — горизонтальную или вертикальную, а parent передаётся конструктору QGraphicsLayout.

[virtual] QGraphicsLinearLayout::~QGraphicsLinearLayout()

Уничтожает объект QGraphicsLinearLayout.

void QGraphicsLinearLayout::addItem(QGraphicsLayoutItem *item)

Эта вспомогательная функция эквивалентна вызову insertItem(-1, item).

void QGraphicsLinearLayout::addStretch(int stretch = 1)

Эта вспомогательная функция эквивалентна вызову insertStretch(-1, stretch).

Qt::Alignment QGraphicsLinearLayout::alignment(QGraphicsLayoutItem *item) const

Возвращает выравнивание для item. По умолчанию выравнивание — Qt::AlignTop | Qt::AlignLeft.

Выравнивание определяет, как элемент позиционируется внутри выделенного пространства в случае, если в макете больше места, чем могут занять виджеты.

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

[override virtual] int QGraphicsLinearLayout::count() const

Переопределяет QGraphicsLayout::count().

void QGraphicsLinearLayout::insertItem(int index, QGraphicsLayoutItem *item)

Вставляет item в макет в позицию index, или перед элементом, расположенным в этой позиции.

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

void QGraphicsLinearLayout::insertStretch(int index, int stretch = 1)

Вставляет растяжение stretch в позицию index, или перед элементом, расположенным в этой позиции.

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

[override virtual] void QGraphicsLinearLayout::invalidate()

Переопределяет QGraphicsLayout::invalidate().

[override virtual] QGraphicsLayoutItem *QGraphicsLinearLayout::itemAt(int index) const

Переопределяет QGraphicsLayout::itemAt().

При итерации с 0 и выше, возвращает элементы в визуальном порядке.

qreal QGraphicsLinearLayout::itemSpacing(int index) const

Возвращает отступ после элемента в позиции index.

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

Qt::Orientation QGraphicsLinearLayout::orientation() const

Возвращает ориентацию макета.

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

[override virtual] void QGraphicsLinearLayout::removeAt(int index)

Переопределяет QGraphicsLayout::removeAt().

Удаляет элемент в позиции index, не уничтожая его. Владение элементом передаётся вызывающей стороне.

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

void QGraphicsLinearLayout::removeItem(QGraphicsLayoutItem *item)

Удаляет item из макета, не уничтожая его. Владение item передаётся вызывающей стороне.

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

void QGraphicsLinearLayout::setAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment)

Устанавливает выравнивание item в alignment. Если выравнивание item изменяется, макет автоматически пересчитывается.

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

[override virtual] void QGraphicsLinearLayout::setGeometry(const QRectF &rect)

Переопределяет QGraphicsLayoutItem::setGeometry().

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().

[override virtual] QSizeF QGraphicsLinearLayout::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

Переопределяет QGraphicsLayoutItem::sizeHint().

qreal QGraphicsLinearLayout::spacing() const

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

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

int QGraphicsLinearLayout::stretchFactor(QGraphicsLayoutItem *item) const

Возвращает коэффициент растяжения для item. Коэффициент растяжения по умолчанию — 0, что означает, что элементу не задан коэффициент растяжения.

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qgraphicslinearlayout.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API