Spec-Zone.ru › Qt 5.11

Класс QGraphicsItemGroup

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

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

Типы публичных

перечисление анонимный { Тип }

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

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
  • 176 публичных функций унаследованы от QGraphicsItem

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

  • 24 защищённых функций унаследованы от QGraphicsItem

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

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

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 и его дочерние элементы в эту группу элементов. Элемент и дочерние элементы будут перенастроены как потомки этой группы, но его положение и преобразование относительно сцены останутся неизменными.

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

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

Переопределено из QGraphicsItem::boundingRect().

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

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

Переопределено из QGraphicsItem::isObscuredBy().

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

Переопределено из QGraphicsItem::opaqueArea().

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

Переопределено из QGraphicsItem::paint().

void QGraphicsItemGroup::removeFromGroup(QGraphicsItem *item)

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

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

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

Переопределено из QGraphicsItem::type().

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

Spec-Zone.ru

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