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 |
プロパティ
- elementId : QString
- maximumCacheSize : QSize
パブリック関数
| 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.