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.これにより、マルチサンプリングなしで、シーン内の滑らかでアンチエイリアスされた形状が可能になりますが、若干の追加コストが発生します。 |
-p ,--optimize-paths | QML ファイルにコミットする前にパスの最適化を可能にし、後の読み込みとレンダリングを高速化する可能性があります。 |
--outline-stroke-mode | 元のパスの代わりに、塗りつぶされたシェイプのアウトライン(輪郭)をストロークします。 |
-t ,--type-name <string> | Shape の代わりに、タイプ名 <string> が出力されます。これは、Shape アイテムのデフォルトの動作をオーバーライドするカスタム アイテムを使用して可能になります。 |
-v ,--view | 生成されるQt Quick アイテムのプレビューを表示します。 |
他のオプションとの比較
Qt Quick に SVG コンテンツを含めるためのオプションは複数あります。以下は、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 にコピーする方が、完全なファイルを生成するよりも便利かもしれません。
© 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.