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 アプリケーションの一部として使用することができます。
さらに、以下のオプションをサポートしています:
オプション | 説明 |
---|---|
-コピーライト・ステートメント <文字列 | 生成ファイルの先頭にコメントとして<string>を追加する。 |
-c, -curve-renderer | カーブレンダラーバックエンドを有効にする。 Qt Quick Shapes.これにより、マルチサンプリングなしで、シーン内の滑らかでアンチエイリアスされた形状が有効になりますが、多少の追加コストがかかります。 |
-p, -optimize-paths | QML ファイルにコミットする前にパスを最適化します。 |
-アウトラインストロークモード | 元のパスの代わりに、塗りつぶされた形状の輪郭をストロークします。 |
-t, -type-name <文字列 | Shape の代わりに、タイプ名 <string> を出力に使用します。これは、Shape 項目のデフォルトの動作を上書きするために、カスタム項目を使用することを可能にします。 |
-v, -view | 生成されるQt Quick アイテムのプレビューを表示します。 |
他のオプションとの比較
SVG コンテンツをQt Quick に含めるためのオプションは複数あります。以下では、svgtoqml
がどのような位置づけにあるかを概観します。
との比較Qt SVG
Qt SVGはSVGファイルのパーサとソフトウェアレンダラを提供するモジュールである。さらに、画像ローダー・プラグインを含み、SVGファイルをQt Quick のImage 要素で直接読み込むことができる。SVGはラスタライズされ、指定されたサイズでキャッシュされる。しかし、ピクセレーションなしで画像を拡大するには、異なるサイズで再読み込みする必要があり、そのためにはコストがかかります。
svgtoqml
(と コンポーネント)は、同じコンテンツをレンダリングする代替方法です。一旦 にロードされると、シーンのレンダリングに必要なジオメトリデータを GPU メモリに保持したまま、トランスフォームを変更できます。したがって、オーバーヘッドをほとんど発生させることなく、異なるスケールでベクター画像を再描画することができます。VectorImage Qt Quick
しかし、アプリケーションのライフタイム中に画像サイズが変更されない場合は、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.