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::Type | 10 | グラフィックアイテムグループ |
メンバ関数ドキュメント
[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.
© 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.