Spec-Zone.ru › Qt

Класс QGraphicsItemGroup

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

Заголовок: #include <QGraphicsItemGroup>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QGraphicsItem
  • Список всех членов, включая наследуемые

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

Перечисление anonymous { Тип }

Функции публичного доступа

QGraphicsItemGroup(QGraphicsItem *parent = nullptr)
virtual ~QGraphicsItemGroup()
void addToGroup(QGraphicsItem *item)
void removeFromGroup(QGraphicsItem *item)

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

virtual QRectF boundingRect() const override
virtual bool isObscuredBy(const QGraphicsItem *item) const override
virtual QPainterPath opaqueArea() const override
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
virtual 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::anonymous

Значение, возвращаемое виртуальной функцией 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() 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-6.2/qgraphicsitemgroup.html

Spec-Zone.ru

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