Spec-Zone.ru › Qt 5.15

Класс QGraphicsItemGroup

Класс QGraphicsItemGroup предоставляет контейнер, который рассматривает группу элементов как единый элемент. Подробнее...

Заголовок: #include <QGraphicsItemGroup>
qmake: QT += widgets
С момента: Qt 4.2
Наследует: QGraphicsItem

Этот класс был введен в Qt 4.2.

  • Список всех членов, включая унаследованные члены

Типы публичного доступа

Перечисление безымянный { Тип }

Публичные функции

QGraphicsItemGroup(QGraphicsItem *parent = nullptr)
виртуальный ~QGraphicsItemGroup()
void addToGroup(QGraphicsItem *item)
void removeFromGroup(QGraphicsItem *item)

Реализованные публичные функции

виртуальный QRectF boundingRect() const override
виртуальный bool isObscuredBy(const QGraphicsItem *item) const override
виртуальный QPainterPath opaqueArea() const override
виртуальный void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
виртуальный int type() const override

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

QGraphicsItemGroup — это специальный тип составного элемента, который рассматривает себя и все свои дочерние элементы как один элемент (т.е. все события и геометрии для всех дочерних элементов объединяются вместе). Часто группы элементов используются в средствах презентаций, когда пользователь хочет сгруппировать несколько меньших элементов в один большой элемент, чтобы упростить перемещение и копирование элементов.

Если всё, что вам нужно, это хранение элементов внутри других элементов, вы можете напрямую использовать любой QGraphicsItem, передав соответствующий родительский элемент методу setParentItem().

Функция boundingRect() класса QGraphicsItemGroup возвращает ограничивающую прямоугольник всех элементов в группе элементов. QGraphicsItemGroup игнорирует флаг ItemIgnoresTransformations для своих дочерних элементов (т.е., относительно геометрии элемента группы, дочерние элементы обрабатываются так, как если бы они были трансформируемыми).

Существует два способа создания группы элементов. Самый простой и распространенный подход заключается в передаче списка элементов (например, всех выделенных элементов) методу QGraphicsScene::createItemGroup(), который возвращает новый элемент QGraphicsItemGroup. Другой подход заключается в ручном создании элемента QGraphicsItemGroup, добавлении его в сцену, вызвав QGraphicsScene::addItem(), и последующем добавлении элементов в группу по одному, каждый раз вызывая addToGroup(). Для разбора ("снятия группировки") группы элементов можно вызвать QGraphicsScene::destroyItemGroup или вручную удалить все элементы из группы, вызвав removeFromGroup().

// Group all selected items together
QGraphicsItemGroup *group = scene->createItemGroup(scene->selecteditems());

// Destroy the group, and delete the group item
scene->destroyItemGroup(group);

Операции добавления и удаления элементов сохраняют положение и преобразование элементов относительно сцены, в отличие от вызова setParentItem(), где сохраняются только положение и преобразование дочернего элемента относительно родительского.

Функция addtoGroup() устанавливает родительский элемент для целевого элемента на текущую группу элементов, сохраняя положение и преобразование элемента относительно сцены. Визуально это означает, что элементы, добавленные с помощью addToGroup(), останутся полностью неизменными в результате этой операции, независимо от текущего положения или преобразования элемента или группы; хотя положение и матрица элемента, вероятно, изменятся.

Функция removeFromGroup() имеет семантику, аналогичную setParentItem(); она устанавливает родительский элемент для элемента на родительский элемент группы элементов. Как и в случае с addToGroup(), положение и преобразование элемента относительно сцены остаются неизменными.

См. также QGraphicsItem и Графический фреймворк.

Документация по типам членов

Перечисление QGraphicsItemGroup::безымянный

Значение, возвращаемое виртуальной функцией type().

Константа Значение Описание
QGraphicsItemGroup::Type 10 Группа графических элементов

Документация по функциям-членам

QGraphicsItemGroup::QGraphicsItemGroup(QGraphicsItem *parent = nullptr)

Конструирует QGraphicsItemGroup. parent передается в конструктор QGraphicsItem.

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

[virtual] QGraphicsItemGroup::~QGraphicsItemGroup()

Удаляет QGraphicsItemGroup.

void QGraphicsItemGroup::addToGroup(QGraphicsItem *item)

Добавляет данный item и дочерние элементы item в эту группу элементов. Элемент и дочерние элементы будут переродителем в эту группу, но его положение и преобразование относительно сцены останутся неизменными.

См. также removeFromGroup() и QGraphicsScene::createItemGroup().

[override virtual] QRectF QGraphicsItemGroup::boundingRect() const

Переопределяет: QGraphicsItem::boundingRect() const.

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

[override virtual] bool QGraphicsItemGroup::isObscuredBy(const QGraphicsItem *item) const

Переопределяет: QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const.

[override virtual] QPainterPath QGraphicsItemGroup::opaqueArea() const

Переопределяет: QGraphicsItem::opaqueArea() const.

[override virtual] void QGraphicsItemGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

Переопределяет: QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).

void QGraphicsItemGroup::removeFromGroup(QGraphicsItem *item)

Удаляет указанный item из этой группы. Элемент будет переродителем к родительскому элементу этой группы или к 0, если у этой группы нет родительского элемента. Его положение и преобразование относительно сцены останутся неизменными.

См. также addToGroup() и QGraphicsScene::destroyItemGroup().

[override virtual] int QGraphicsItemGroup::type() const

Переопределяет: QGraphicsItem::type() const.

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

Spec-Zone.ru

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