svgtoqml
svgtoqml は Qt に同梱されているコマンドラインツールで、SVG ドキュメントを QML ファイルに変換します。この QML ファイルは、Qt Quick アプリケーションのコンポーネントとして使用できます。天気予報の例には、このツールを使って生成された複数のQMLファイルが含まれています。
概要
svgtoqml は、SVG ファイルを、Qt Quick プリミティブを使用する QML ファイルに変換します。Qt Quick はスケーラブルなベクターグラフィックスをサポートしているため、生成されるアイテムは可能な限り滑らかに変換されます。ベースラインとして、このツールはSVG Tiny 1.2プロファイルの静的機能のほとんどをサポートしています。ある種の追加機能はケースバイケースで決定され、サポートされる。インタラクティブ機能とアニメーションはサポートされない。
使い方
svgtoqml の基本的な使い方は、入力ファイルと出力ファイルを提供することです:svgtoqml input.svg output.qml 。これはinput.svg ファイルを読み込み、output.qml の対応するQt Quick シーンに変換し、Qt Quick アプリケーションの一部として使用することができます。
さらに、以下のオプションをサポートしています:
| オプション | 説明 |
|---|---|
--no-assume-trusted-source | 入力が信頼できないファイルであり、追加のチェックと制限が有効にされるべきであることを示す。デフォルトでは、SVGファイルはAssumeTrustedSource option で解析される。 この引数を渡すと、そのオプションは解除される。 |
--copyright-statement <string> | 生成されるファイルの先頭にコメントとして <string> を追加する。 |
-c,--curve-renderer | のカーブレンダラバックエンドを有効にする。 Qt Quick Shapes.これにより、マルチサンプリングなしで、シーン内の滑らかでアンチエイリアスされた形状が可能になりますが、若干の追加コストが発生します。 |
-a,--asynchronous-shapes | QtQuick.Shapes::Shape::asynchronous}{asynchronous} モードを生成シーン内のすべてのShape 要素で有効にします。これにより、CPU 使用率と応答性が向上する可能性があります。 |
-p,--optimize-paths | QML ファイルにコミットする前にパスの最適化を可能にし、後でロードやレンダリングを高速化できる可能性があります。 |
--outline-stroke-mode | 元のパスの代わりに、塗りつぶされたシェイプのアウトライン(輪郭)をストロークします。 |
-t,--type-name <string> | Shape の代わりに、タイプ名 <string> が出力されます。これにより、カスタム・アイテムを使用して、Shape アイテムのデフォルトの動作をオーバーライドできるようになります。 |
-v,--view | 生成されるQt Quick アイテムのプレビューを表示します。 |
このツールは、qt_target_qml_from_svg()cmake 関数を使用することで、ビルドから自動的に呼び出すことができます。
他のオプションとの比較
SVG コンテンツをQt Quick に含めるためのオプションは複数あります。以下では、svgtoqml がどのような位置づけにあるのかを概観します。
との比較Qt SVG
Qt SVGはSVGファイルのパーサーとソフトウェアレンダラを提供するモジュールです。さらに、画像ローダー・プラグインを含み、SVGファイルをQt Quick のImage 要素で直接読み込むことができる。SVGはラスタライズされ、指定されたサイズでキャッシュされる。しかし、ピクセレーションなしで画像を拡大するには、異なるサイズで再読み込みする必要があり、そのためにはコストがかかります。
svgtoqml (とVectorImage コンポーネント)は、同じコンテンツをレンダリングする別の方法です。一旦Qt Quick にロードされると、シーンのレンダリングに必要なジオメトリデータを GPU メモリに保持したまま、トランスフォームを変更できます。したがって、オーバーヘッドをほとんど発生させることなく、異なるスケールでベクター画像を再描画することができます。
しかし、アプリケーションのライフタイム中に画像サイズが変更されない場合は、SVG をImage としてロードする方が効率的です。この場合、SVG が常に可能なサイズの小さなサブセットでレンダリングされるのであれば、PNG のような読み込み効率の良い画像形式にあらかじめラスタライズしておくことを検討する。
VectorImage との比較
VectorImage コンポーネントはsvgtoqml と同じ基本機能を提供しますが、Qt Quick シーンを QML ファイルとして事前に生成する代わりに、実行時にシーンを作成します。これにより、ビルド時に提供されないSVGファイルを読み込むことができ、より柔軟性が増します。svgtoqml 、シーンを事前に生成することで、読み込む前にシーンを最適化することができます。したがって、ビルド時に利用可能なファイルについては、svgtoqml が好ましいオプションです。
PathSvg との比較
PathSvg コンポーネントは Qt Quick Shapesモジュールの一部です。これは、パスの制御点が文字列として指定される、SVGで使用される構文でパスを定義する方法を提供します。これは SVG ファイルの読み込みをサポートしないので、svgtoqml の直接的な代替にはなりません。 複雑な SVG がアプリケーションで必要とされる特定の形状を含む場合、このパス記述をPathSvg にコピーする方が、完全なファイルを生成するよりも便利かもしれません。
© 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.