QSvgRenderer Class

QSvgRenderer クラスは SVG ファイルの内容をペイントデバイスに描画するために使用されます。詳細...

Header: #include <QSvgRenderer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Svg)
target_link_libraries(mytarget PRIVATE Qt6::Svg)
qmake: QT += svg
Inherits: QObject

注意:このクラスの関数は全てリエントラントです。

プロパティ

パブリック関数

QSvgRenderer(QObject *parent = nullptr)
QSvgRenderer(QXmlStreamReader *contents, QObject *parent = nullptr)
QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr)
QSvgRenderer(const QString &filename, QObject *parent = nullptr)
virtual ~QSvgRenderer()
bool animated() const
Qt::AspectRatioMode aspectRatioMode() const
QRectF boundsOnElement(const QString &id) const
QSize defaultSize() const
bool elementExists(const QString &id) const
int framesPerSecond() const
bool isAnimationEnabled() const
bool isValid() const
QtSvg::Options options() const
void setAnimationEnabled(bool enable)
void setAspectRatioMode(Qt::AspectRatioMode mode)
void setFramesPerSecond(int num)
void setOptions(QtSvg::Options flags)
void setViewBox(const QRect &viewbox)
void setViewBox(const QRectF &viewbox)
QTransform transformForElement(const QString &id) const
QRect viewBox() const
QRectF viewBoxF() const

パブリックスロット

bool load(QXmlStreamReader *contents)
bool load(const QByteArray &contents)
bool load(const QString &filename)
void render(QPainter *painter)
void render(QPainter *painter, const QRectF &bounds)
void render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF())

シグナル

void repaintNeeded()

静的パブリック・メンバー

(since 6.8) void setDefaultOptions(QtSvg::Options flags)

詳しい説明

QSvgRenderer を使用することで、Scalable Vector Graphics (SVG) をQWidget,QImage, QGLWidget を含むQPaintDevice サブクラス上にレンダリングすることができる。

QSvgRenderer は、静的な描画の読み込みやレンダリングといった SVG レンダリングの基本的な機能や、アニメーションのようなよりインタラクティブな機能をサポートする API を提供する。レンダリングはQPainter を使って行われるので、SVG 図面はQPaintDevice のどのサブクラスでもレンダリングできる。

SVG 図面は QSvgRenderer が構築される際に読み込まれるか、load() 関数を使用して後で読み込まれます。データは直列化された XML として直接提供されるか、ファイル名を用いて間接的に提供される。レンダラーが構築されたとき、あるいは後で有効なファイルが読み込まれた場合、isValid() は true を返し、そうでない場合は false を返します。QSvgRenderer にはrender() スロットがあり、指定したペインターを使用して現在のドキュメントまたはアニメーションドキュメントの現在のフレームをレンダリングします。

defaultSize() 関数は、現在読み込まれている SVG ファイルをレンダリングするのに必要な容量についての情報を提供します。これはQWidget のような、しばしば親レイアウトにサイズのヒントを与える必要がある描画デバイスにとって有用です。描画のデフォルトサイズはviewBox プロパティで得られる可視領域とは異なるかもしれない。

アニメーション SVG 描画はサポートされており、関数とプロパティの単純なコレクションで制御できる:

  • animated() 関数は描画がアニメーション情報を含むかどうかを示す。
  • framesPerSecond プロパティはアニメーションの再生速度を含む。

最後に、QSvgRenderer クラスはrepaintNeeded() シグナルを提供し、これはドキュメントのレンダリングを更新する必要があるときに発行されます。

QSvgWidgetQt SVG C++ ClassesQPictureも参照して ください。

プロパティ Documentation

[since 6.7] animationEnabled : bool

このプロパティは SVG がアニメーションする場合にアニメーションを実行するかどうかを保持する。

このプロパティを false に設定するとアニメーションタイマーが停止する。SVG がアニメーション要素を含む場合、このプロパティを false に設定するとアニメーションタイマーを開始する。

SVG がアニメーションしない場合、プロパティは何の効果も持たない。そうでない場合、プロパティはデフォルトでtrueになる。

このプロパティは Qt 6.7 で導入された。

アクセス関数:

bool isAnimationEnabled() const
void setAnimationEnabled(bool enable)

animated()も参照

aspectRatioMode : Qt::AspectRatioMode

SVG ビューボックスのアスペクト比をどのようにレンダリングするか。

許容されるモードは以下の通りです:

  • Qt::IgnoreAspectRatio (デフォルト): アスペクト比は無視され、レンダリングはターゲット境界に引き伸ばされます。
  • Qt::KeepAspectRatioデフォルト):アスペクト比は無視され、描画はターゲット境界まで引き伸ばされる。

アクセス関数

Qt::AspectRatioMode aspectRatioMode() const
void setAspectRatioMode(Qt::AspectRatioMode mode)

framesPerSecond : int

このプロパティは、表示する1秒あたりのフレーム数を保持します。

現在のドキュメントがアニメーションしていない場合、1 秒あたりのフレーム数は 0 になります。

アクセス関数:

int framesPerSecond() const
void setFramesPerSecond(int num)

animated()も参照のこと

[since 6.7] options : QtSvg::Options

このプロパティは SVG ファイルの解析とレンダリングの様々な機能を有効または無効にするために使用できるQtSvg::Option フラグの集合を保持する。

有効にするためには、このプロパティはbefore load () が実行された時に設定されなければならない。SVGソースのパラメータを取るコンストラクタは、構築中にロードを実行することに注意してください。

このプロパティは Qt 6.7 で導入されました。

アクセス関数:

QtSvg::Options options() const
void setOptions(QtSvg::Options flags)

setDefaultOptionsも参照

viewBox : QRectF

このプロパティは、ドキュメントの可視領域を指定する矩形を論理座標で保持する。

アクセス関数:

QRectF viewBoxF() const
void setViewBox(const QRect &viewbox)
void setViewBox(const QRectF &viewbox)

メンバ関数 ドキュメント

QSvgRenderer::QSvgRenderer(QObject *parent = nullptr)

与えられたparent で新しいレンダラーを構築する。

QSvgRenderer::QSvgRenderer(QXmlStreamReader *contents, QObject *parent = nullptr)

与えられたparent で新しいレンダラーを構築し、contents で指定されたストリームリーダーを使って SVG データを読み込みます。

QSvgRenderer::QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr)

与えられたparent で新しいレンダラーを構築し、contents で指定されたバイト配列から SVG データをロードする。

QSvgRenderer::QSvgRenderer(const QString &filename, QObject *parent = nullptr)

与えられたparent で新しいレンダラーを構築し、指定されたfilename で SVG ファイルの内容をロードする。

[virtual noexcept] QSvgRenderer::~QSvgRenderer()

レンダラーを破棄する。

bool QSvgRenderer::animated() const

現在のドキュメントにアニメーション要素が含まれている場合は true を返し、そうでない場合は false を返す。

framesPerSecond()も参照

QRectF QSvgRenderer::boundsOnElement(const QString &id) const

与えられたid を持つアイテムの外接矩形を返す。親要素の変換行列は要素の境界には影響しません。

transformForElement()も参照

QSize QSvgRenderer::defaultSize() const

文書内容のデフォルトサイズを返します。

bool QSvgRenderer::elementExists(const QString &id) const

与えられたid を持つ要素が現在解析されている SVG ファイル内に存在し、かつレンダリング可能な要素である場合に真を返す。

注意:このメソッドはレンダリング可能な要素に対してのみ真を返す。つまり、塗りつぶし/ストロークスタイルプロパティの一部とみなされる要素、例えば radialGradients は、"id" 属性でマークされたタフな要素であっても、このメソッドでは見つからない。

bool QSvgRenderer::isValid() const

有効な現文書があれば真を返し、なければ偽を返す。

[slot] bool QSvgRenderer::load(QXmlStreamReader *contents)

指定された SVG をcontents に読み込み、その内容が正常に解析されれば真を返し、そうでなければ偽を返す。

リーダは現在置かれている位置から利用される。contentsnull の場合、 動作は未定義。

[slot] bool QSvgRenderer::load(const QByteArray &contents)

指定 さ れた SVG 形式を読み込みますcontents 、 内容が正 し く 解析 さ れた場合には true を返し、 そ う でなければ false を返 し ます。

[slot] bool QSvgRenderer::load(const QString &filename)

filename で指定 さ れた SVG フ ァ イ ルを読み込みます。

[slot] void QSvgRenderer::render(QPainter *painter)

与え ら れたpainter を用いて、 カ レ ン ト 文書ま たはア ニ メ ーシ ョ ン文書のカ レ ン ト フ レームをレンダリングします。

[slot] void QSvgRenderer::render(QPainter *painter, const QRectF &bounds)

現在のドキュメント、またはアニメーションドキュメントの現在のフレームを、指定されたpainter を使って、ペインター内の指定されたbounds にレンダリングします。bounds が空でない場合、SVG が暗示するアスペクト比を無視して、出力はそれを埋めるように拡大縮小されます。

[slot] void QSvgRenderer::render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF())

指定された要素を、指定されたbounds 上の指定されたpainter を用いてelementId でレンダリングします。外接矩形が指定されない場合、SVG 要素は描画デバイス全体にマップされる。

[signal] void QSvgRenderer::repaintNeeded()

このシグナルは、ドキュメントのレンダリングを更新する必要があるとき、通常はアニメーションのために発せられる。

[static, since 6.8] void QSvgRenderer::setDefaultOptions(QtSvg::Options flags)

レンダラーが作成されるオプションフラグをflags に設定します。 デフォルトでは、フラグは設定されていません。

実行時に、これは QT_SVG_DEFAULT_OPTIONS 環境変数によってオーバーライドできます。

この関数は Qt 6.8 で導入されました。

QTransform QSvgRenderer::transformForElement(const QString &id) const

与えられたid を持つ要素の変換行列を返します.この行列は、要素の親の変換の積です。要素自体の変換は含まれません。

要素の外接矩形を論理座標で求めるには,この行列をboundsOnElement() から返される矩形に適用します.

boundsOnElement()も参照してください

QRect QSvgRenderer::viewBox() const

viewBoxF().toRect() を返します。

setViewBox() およびviewBoxF() も参照して ください。

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