C
Qt Quick ウルトラライトツール
Qt Quick UltraliteツールチェーンはCMakeとQmlProjectを中心に構築されています。ビルドプロセスはCMake設定フェーズから始まり、アプリケーションのCMakeLists.txtと Qt Quick UltraliteパッケージのCMakeファイルがビルドファイルの準備に使用されます。実際のビルドプロセスは、選択したCMakeジェネレータに依存します。
ビルドプロセスのデモ
Qt Quick Ultraliteのビルドプロセスを、Bluetoothで携帯電話に接続し、連絡先リストを取得するサンプルアプリケーションでデモします。プロジェクトには以下のファイルが含まれています:
| ファイル | ファイル名 |
|---|---|
| Main.qml | アプリケーションのメインビューを定義します。 |
| QMLファイル | アプリケーションのUIを定義します。 |
| C++ ソース | ListView などのビジュアルアイテムのカスタムデータ型を定義します。 |
| C/C++ ソースファイル | アプリケーションロジックを定義します。 |
| main.cpp | Qt Quick Ultralite の起動にQul::Application を使用する main() を定義します。 |
| 画像 | アプリケーションで使用される画像アセット。 |
| フォント | アプリケーションで使用するフォントファイル。 |
| CMakeLists.txt | プロジェクトの設定ファイル。 |
| demo.qmlprojet | プロジェクトの設定ファイル。 |
以下の図に、サンプル・アプリケーションのビルド・プロセスの概要を示します:

Qt Quick Ultralite ツールを使用したコードの生成
Qt Quick Ultraliteは必要な追加コードを生成するツールを提供します。詳細はqmlprojectexporter tool qmlinterfacegenerator,qmltocpp,fontcompilerを参照してください。
qmlinterfacegenerator
qmlinterfacegenerator は C++ のヘッダファイルを解析して独自の QML 要素を生成します。例えば、これはQMLとアプリケーションのビジネスロジック層との接続を提供するために行われます。
qulrcc
qulrccリソースコンパイラは、ソース画像から最適化された生データバッファを生成します。また、ImageFiles.filesQmlProject プロパティはビルドに追加し、その他のImageFilesプロパティはリソース・プロパティの設定に使用できます。
最適化プロセスは、プラットフォームと設定によって異なります。例えば、最適化の結果、色深度を下げたり、画像をアルファマップに置き換えたり、大きな透過領域を削除したり、スウィズリングを行ったりすることができます。
リソースコンフィギュレーションはqmlprojectexporterツールが生成するJSONファイルとしてqulrccに渡されます。Resource Compilerは、リソースの説明を含む別のJSONファイルを生成することで、利用可能なリソースについてqmltocppに通知します。
qmltocpp
qmltocppツールは以下の機能を提供します:
- QmlFiles.filesで提供されるqmlファイルからQMLオブジェクトモデルを構築します。qmltocppツールの入力は以下の通りです:
- アプリケーションのQMLコード
- qmlinterfacegeneratorによって生成されたファイル。
- Qt Quick QML要素やコントロールに対応するQt Quick Ultraliteインターフェースファイル。例えば、Item.qml、Rectangle.qml、Image.qml、ListView.qml、PropertyAnimation.qml、Slider.qml、Button.qmlなど。
- qulrccが生成するリソース記述。
- qulrccはQMLアプリケーションコードで使用されるグラフィカルアセットを解析し、最適化された生データバッファを生成します。この例では、qmltocppがavatar.pngを生成しています。最適化プロセスは、プラットフォーム、構成、使用方法によって異なります。例えば、最適化の結果、色深度を下げたり、アルファマップに置き換えたり、アウトラインの透明領域を削除したり、スウィズリングしたりすることができます。
- テキスト要素の使用状況を分析し、テキストとフォントの説明を含むJSONファイルを生成します。
- JavaScriptコードを生成されたC++コードに置き換えます。
- バインディング、ステート、トランジションコードを生成します。
- 上記のすべてを組み合わせて、C++のヘッダーファイルとソースファイルを生成します。
フォントコンパイラ
fontcompilerツールは、テキストとフォント記述のJSONファイルを読み取り、選択されたフォント処理サブシステム用のC++コードを生成します。詳細については、テキストレンダリングとフォントを参照してください。
qmlprojectexporter
qmlprojectexporterは入力ファイルを出力内容を決定する設定とともにリストするメインツールとして使用されます。これらの設定は、例えば、最適化、フォントエンジン、リソース圧縮に関連することができます。qmlprojectexporterの詳細な説明とプロジェクトオプションの完全なリストについては、QmlProjectマニュアルを参照してください。
qmlprojectexporter は残りのツールのラッパーとしても機能します。
他のビルドシステムとのより良い統合を可能にするために CMake の代替を提供します。詳細はqmlprojectexporterを参照してください。
qulpreview (テクニカルプレビュー)
qulpreview QML プロジェクトをターゲットプラットフォームへデプロイする際に使用します。これは、指定されたターゲットに関連する様々なワークフローを記述したプロファイルを消費することで動作します。現在、Qt はデスクトップ Qt をターゲットとした 2 つのプロファイル(Windows 用と Linux 用)を提供しています。今後、さらに多くのプロファイルが提供される予定です。
利用可能なオプションの完全なリストについては、qulpreview --help を実行してください。qulpreview の詳細については、QmlProjectのマニュアルを参照してください。
コンパイル段階
コード生成の後、コンパイルが始まります。コンパイラへの入力は以下の通り:
- アプリケーションのC++およびCコード。
- 生成されたファイル。
- Qt Quick Ultralite パブリックおよび内部ヘッダー。例えば、ヘッダーは Property や Signal のようなテンプレート化されたクラスや、Rectangle や Image のようなアイテムのために提供されます。
Qt Quick Ultralite ライブラリに対するリンク
最後に、Qt Quick Ultralite ライブラリに対して静的にリンクする必要があります。ターゲット・プラットフォームによって異なりますが、リンクすると次のような結果が得られます:
- ターゲット・プラットフォームがデスクトップの場合は、アプリケーションの実行ファイル。
- ターゲットMCUデバイスにフラッシュできる*.elf、*.hex、*.runなどのイメージファイル。