このページでは

QGraphicsSvgItem Class

QGraphicsSvgItem クラスは、SVG ファイルの内容を描画するために使用できるQGraphicsItem です。詳細...

ヘッダー: #include <qgraphicssvgitem.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS SvgWidgets)
target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets)
qmake: QT += svgwidgets
継承元: QGraphicsObject

プロパティ

パブリック関数

QGraphicsSvgItem(QGraphicsItem *parent = nullptr)
QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)
QString elementId() const
QSize maximumCacheSize() const
QSvgRenderer *renderer() const
void setElementId(const QString &id)
void setMaximumCacheSize(const QSize &size)
void setSharedRenderer(QSvgRenderer *renderer)

再実装されたパブリック関数

virtual QRectF boundingRect() const override
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
virtual int type() const override

詳細な説明

QGraphicsSvgItem は、SVG ファイルを `QGraphicsView` 上にレンダリングする手段を提供します。QGraphicsSvgItem は、レンダリングする SVG ファイルをコンストラクタに渡すか、共有される `QSvgRenderer ` を明示的に設定することで作成できます。

QGraphicsSvgItemに対してQSvgRenderer を設定しても、そのアイテムがレンダラーの所有権を取得するわけではないことに注意してください。したがって、setSharedRenderer()メソッドを使用する場合は、QSvgRenderer オブジェクトの存続期間がQGraphicsSvgItemの存続期間以上になるようにする必要があります。

QGraphicsSvgItem では、setElementId を通じて SVG ファイルの一部のみをレンダリングする方法が提供されています。setElementId() メソッドが呼び出されると、渡された ID を持つ SVG 要素(およびその子要素)のみがレンダリングされます。これにより、多数の独立した要素を含む大規模な SVG ファイルを選択的にレンダリングする便利な方法が提供されます。 たとえば、次のコードは、トランプのデッキ全体を含むSVGファイルからジョーカーのみを描画します:

QSvgRenderer *renderer = new QSvgRenderer(QLatin1String("SvgCardDeck.svg"));
QGraphicsSvgItem *black = new QGraphicsSvgItem();
QGraphicsSvgItem *red   = new QGraphicsSvgItem();

black->setSharedRenderer(renderer);
black->setElementId(QLatin1String("black_joker"));

red->setSharedRenderer(renderer);
red->setElementId(QLatin1String("red_joker"));

項目のサイズは、項目の変換行列を直接操作することで設定できます。

デフォルトでは、アイテムの表示を高速化するために、QGraphicsItem::DeviceCoordinateCache モードを使用してSVGレンダリングがキャッシュされます。QGraphicsItem::setCacheMode()メソッドにQGraphicsItem::NoCache を渡すことで、キャッシュを無効にすることができます。

QSvgWidget 、 Qt SVG C++ Classes、QGraphicsItem 、およびQGraphicsView も参照してください。

プロパティのドキュメント

elementId : QString

このプロパティには、要素のXML IDが格納されます。

アクセス関数:

QString elementId() const
void setElementId(const QString &id)

maximumCacheSize : QSize

このプロパティは、このアイテムのデバイス座標キャッシュの最大サイズを保持します。

アクセス関数:

QSize maximumCacheSize() const
void setMaximumCacheSize(const QSize &size)

メンバ関数のドキュメント

QGraphicsSvgItem::QGraphicsSvgItem(QGraphicsItem *parent = nullptr)

指定されたparent を使用して、新しいSVGアイテムを作成します。

QGraphicsSvgItem::QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)

指定されたparent を使用して新しいアイテムを作成し、指定されたfileName のSVGファイルの内容を読み込みます。

[override virtual] QRectF QGraphicsSvgItem::boundingRect() const

QGraphicsItem::boundingRect() const を再実装します。

このアイテムの境界矩形を返します。

QString QGraphicsSvgItem::elementId() const

現在レンダリングされている要素のXML IDを返します。ファイル全体がレンダリングされている場合は、空の文字列を返します。

注: プロパティ `elementId`のゲッター関数です 。

関連項目: setElementId()。

QSize QGraphicsSvgItem::maximumCacheSize() const

このアイテムのデバイス座標キャッシュの現在の最大サイズを返します。アイテムが `QGraphicsItem::DeviceCoordinateCache ` モードでキャッシュされている場合、デバイス座標でのアイテムの拡張サイズが最大サイズを超えるときは、キャッシュがバイパスされます。

キャッシュのデフォルトの最大サイズは 1024x768 です。QPixmapCache::cacheLimit() はキャッシュ全体の累積範囲を返しますが、maximumCacheSize() はこの特定のアイテムに対する最大キャッシュサイズを指します。

注: プロパティ maximumCacheSizeのゲッター 関数。

setMaximumCacheSize() およびQGraphicsItem::cacheMode()も参照してください 。

[override virtual] void QGraphicsSvgItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

QGraphicsItem::paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)を再実装します。

QSvgRenderer *QGraphicsSvgItem::renderer() const

現在使用中のQSvgRenderer を返します。

void QGraphicsSvgItem::setElementId(const QString &id)

要素のXML IDを「id 」に設定します。

注: プロパティ `elementId`のセッター 関数です。

elementId()も参照してください 。

void QGraphicsSvgItem::setMaximumCacheSize(const QSize &size)

アイテムのデバイス座標キャッシュの最大サイズをsize に設定します。アイテムがQGraphicsItem::DeviceCoordinateCache モードでキャッシュされている場合、デバイス座標でのアイテムの拡張サイズがsize を超えると、キャッシュはバイパスされます。

このキャッシュは、レンダリング結果をキャッシュするために使用されるQPixmap に対応しています。キャッシュ全体に制限を設定するにはQPixmapCache::setCacheLimit()を使用し、個々の項目のキャッシュサイズを設定するにはsetMaximumCacheSize()を使用してください。

注: プロパティmaximumCacheSize のセッター 関数です。

maximumCacheSize() およびQGraphicsItem::cacheMode()も参照してください 。

void QGraphicsSvgItem::setSharedRenderer(QSvgRenderer *renderer)

renderer を、そのアイテム上の共有された `QSvgRenderer ` として設定します。このメソッドを使用することで、複数のアイテムで同じ `QSvgRenderer ` を共有することができます。これにより、SVG ファイルの解析は 1 回だけで済みます。このメソッドに渡される `QSvgRenderer ` は、このアイテムが使用されている間、存在し続ける必要があります。

[override virtual] int QGraphicsSvgItem::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.