Spec-Zone.ru › Qt 6.0

Класс QGraphicsItemGroup

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

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

Открытые типы

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

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

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::безымянный

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

Spec-Zone.ru

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