QGraphicsSvgItem Class

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

Header: #include <QGraphicsSvgItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS SvgWidgets)
target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets)
qmake: QT += svgwidgets
Inherits: 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も参照

プロパティ Documentation

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)

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

[override virtual] int QGraphicsSvgItem::type() const

再実装:QGraphicsItem::type() const.

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。