QGraphicsSvgItem Class

QGraphicsSvgItemクラスは、SVGファイルの内容をレンダリングするために使用できるQGraphicsItem詳細...

ヘッダー #include <QGraphicsSvgItem>
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++ ClassesQGraphicsItem および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() はこの特定のアイテムの最大キャッシュ・サイズを示します。

注釈 プロパティ maxCacheSize のゲッター関数です。

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)

アイテムの共有QSvgRenderer としてrenderer を設定する。このメソッドを使うことで、いくつものアイテムで同じQSvgRenderer を共有することができる。これは SVG ファイルが一度だけ解析されることを意味する。このメソッドに渡されるQSvgRenderer はこのアイテムが使われる限り存在しなければならない。

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