QGraphicsItemGroup Class

QGraphicsItemGroupクラスは、アイテムのグループを1つのアイテムとして扱うコンテナを提供します。詳細...

ヘッダー #include <QGraphicsItemGroup>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承: QGraphicsItem

パブリックな型

enum anonymous { Type }

パブリック関数

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 は特別なタイプの複合アイテムで、それ自身とすべての子アイテムを 1 つのアイテムとして扱います(つまり、すべての子アイテムのすべてのイベントとジオメトリが一緒にマージされます)。プレゼンテーションツールでは、アイテムの移動やコピーを簡単にするために、いくつかの小さなアイテムを1つの大きなアイテムにグループ化したい場合に、アイテムグループを使用するのが一般的です。

アイテムを他のアイテムの中に格納するだけなら、setParentItem() に適切な親を渡すことで、QGraphicsItem を直接使用できます。

QGraphicsItemGroupのboundingRect ()関数は、アイテムグループ内のすべてのアイテムの外接矩形を返します。QGraphicsItemGroup は、その子アイテムの ItemIgnoresTransformations フラグを無視します(つまり、グループアイテムのジオメトリに関しては、子アイテムは変換可能であるかのように扱われます)。

アイテム グループを作成するには、2 つの方法があります。最も簡単で一般的な方法は、アイテムのリスト(たとえば、選択されたすべてのアイテム)をQGraphicsScene::createItemGroup() に渡して、新しい QGraphicsItemGroup アイテムを返す方法です。もう1つの方法は、手動で QGraphicsItemGroup アイテムを作成し、QGraphicsScene::addItem() を呼び出してシーンに追加し、addToGroup() を呼び出してアイテムを 1 つずつ手動でグループに追加する方法です。アイテムグループを解体(「グループ解除」)するには、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 およびGraphics View Frameworkも参照のこと

メンバ型ドキュメント

enum QGraphicsItemGroup::anonymous

仮想type() 関数が返す値。

定数説明
QGraphicsItemGroup::Type10グラフィックアイテムグループ

メンバ関数ドキュメント

[explicit] QGraphicsItemGroup::QGraphicsItemGroup(QGraphicsItem *parent = nullptr)

QGraphicsItemGroup を構築します。parentQGraphicsItem のコンストラクタに渡されます。

QGraphicsScene::addItem()も参照してください

[virtual noexcept] 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.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.