Spec-Zone.ru › Qt 5.9

Класс QGraphicsItemGroup

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

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

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

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

Переопределённые открытые функции

virtual QRectF boundingRect() const
virtual bool isObscuredBy(const QGraphicsItem *item) const
virtual QPainterPath opaqueArea() const
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = Q_NULLPTR)
virtual int type() const
  • 176 открытых функций, унаследованных от QGraphicsItem

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

  • 2 статических открытых члена, унаследованных от 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::QGraphicsItemGroup(QGraphicsItem *parent = Q_NULLPTR)

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

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

QGraphicsItemGroup::~QGraphicsItemGroup()

Уничтожает QGraphicsItemGroup.

void QGraphicsItemGroup::addToGroup(QGraphicsItem *item)

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

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

[virtual] QRectF QGraphicsItemGroup::boundingRect() const

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

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

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

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

[virtual] QPainterPath QGraphicsItemGroup::opaqueArea() const

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

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

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

void QGraphicsItemGroup::removeFromGroup(QGraphicsItem *item)

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

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

[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/qt-5.9/qgraphicsitemgroup.html

Spec-Zone.ru

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