QGraphicsItemGroup Class
QGraphicsItemGroupクラスは、アイテムのグループを1つのアイテムとして扱うコンテナを提供します。詳細...
Header: | #include <QGraphicsItemGroup> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | 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
virtualtype() 関数によって返される値。
定数 | 値 | 説明 |
---|---|---|
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
再定義: (const QGraphicsItem *item) const:QGraphicsItem::opaqueArea() const.
[override virtual]
void QGraphicsItemGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
再リンプルメント: (const QGraphicsItem *item) const: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.
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。