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はペイントクラスの一部です。
注意:このクラスの関数は全てリエントラントです。
プロパティ
|
パブリック関数
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() シグナルを提供し、これはドキュメントのレンダリングを更新する必要があるときに発行されます。
QSvgWidget 、Qt SVG C++ Classes 、QPictureも参照して ください。
プロパティ 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 に読み込み、その内容が正常に解析されれば真を返し、そうでなければ偽を返す。
リーダは現在置かれている位置から利用される。contents がnull
の場合、 動作は未定義。
[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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。