Описание класса QGraphicsItemGroup
|
| QGraphicsItemGroup ( QGraphicsItem * parent = 0 ) | |
| ~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 = 0 ) |
| virtual int | type () const |
Класс QGraphicsItemGroup представляет группу элементов в качестве одного целого.
QGraphicsItemGroup это специальный тип объединённого элемента, который рассматривает себя и всех своих потомков как один элемент (т.е. все элементы и геометрии для всех элементов объединяются вместе). Группы элементов обычно используются в инструментах представления, когда пользователь хочет сгруппировать несколько маленьких элементов в один большой, чтобы упростить перемещение и копирование элементов.
Если вы хотите только хранить элементы внутри других элементов, вы можете использовать любой QGraphicsItem непосредственно, передавая подходящего родителя функции setParentItem().
Функция boundingRect() QGraphicsItemGroup возвращает ограничивающий прямоугольник всех элементов группы. QGraphicsItemGroup игнорирует флаг ItemIgnoresTransformations на своих дочерних элементах (т.е., по отношению к геометрии элемента группы, дочерние элементы трактуются как будто они могут быть подвергнуты преобразованиям).
Есть два способа создать группу элементов. Простейший и наиболее распространённый подход это передать список элементов (например, все выделенные элементы) в QGraphicsScene::createItemGroup(), которая возвращает новый элемент QGraphicsItemGroup. Другой подход это вручную создать элемент QGraphicsItemGroup, добавить его на сцену вызвав QGraphicsScene::addItem(), а затем добавить добавить элементы в группу вручную, по-одному, вызывая addToGroup(). Чтобы разобрать ("разгруппировать") группу элементов, вы можете или вызвать QGraphicsScene::destroyItemGroup(), или вручную удалить все элементы из группы вызывая removeFromGroup().
// Группируем все выделенные элементы вместе QGraphicsItemGroup *group = scene->createItemGroup(scene->selecteditems()); // Уничтожаем группу и удаляем элемент группы scene->destroyItemGroup(group);
Операции добавления и удаления элементов сохраняет их положения и преобразования относительно сцены, в отличие от setParentItem(), где сохраняются позиции и преобразования элементов только только относительно родителя.
Функция addtoGroup() заменяет родителя указанного элемента на элемент этой группы, сохраняя его положение и преобразование по отношению к сцене неизменными. Визуально это означает, что элементы, добавленные с помощью addToGroup(), будут сохранятся полностью неизменными в результате этой операции, независимо от текущего положения или преобразования элемента или группы; хотя положение и матрица элемента скорее всего изменятся.
Функция removeFromGroup() имеет похожую на setParentItem() семантику; она изменяет родителя элемента на родительский элемент группы. Также и с addToGroup(), положение и преобразование элемента по отношению к сцене сохраняются неизменными.
Смотрите также QGraphicsItem и Каркас графического представления.
Создаёт QGraphicsItemGroup. parent передаётся в конструктор QGraphicsItem.
Смотрите также QGraphicsScene::addItem().
Уничтожает QGraphicsItemGroup.
Добавляет указанный элемент item в эту группу. Родителем элемента станет эта группа, но его позиция и преобразование по отношению к сцене останутся неизменными.
Смотрите также removeFromGroup() и QGraphicsScene::createItemGroup().
Переопределено из QGraphicsItem::boundingRect().
Возвращает ограничивающий прямоугольник данного элемента группы, и всех его дочерних элементов.
Повторно реализовано из QGraphicsItem::isObscuredBy().
Повторно реализовано из QGraphicsItem::opaqueArea().
Переопределено из QGraphicsItem::paint().
Удаляет указанный элемент item из этой группы. Родителем элемента станет родительский элемент этой группы или 0, если у группы нет родителя. Его позиция и преобразование по отношению к сцене останутся неизменными.
Смотрите также addToGroup() и QGraphicsScene::destroyItemGroup().
Переопределено из QGraphicsItem::type().
| Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies) | Торговые марки | Qt 4.6.4 |
|
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |