QGraphicsItemGroup Class
QGraphicsItemGroup クラスは、項目のグループを単一の項目として扱うコンテナを提供します。詳細...
| ヘッダー: | #include <QGraphicsItemGroup> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QGraphicsItem |
パブリック型
| enum { 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」も参照してください 。
メンバ関数のドキュメント
[explicit] QGraphicsItemGroup::QGraphicsItemGroup(QGraphicsItem *parent = nullptr)
QGraphicsItemGroup を生成します。parent は、QGraphicsItem のコンストラクタに渡されます。
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 を再実装します。
© 2026 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.