このページでは

QMLアプリケーションのデプロイ

このページでは、QMLアプリケーションのデプロイ方法について解説します。Qt Creator を使用したデプロイや、Qtリソースシステムを利用してQMLファイルやその他のリソースをアプリケーションの実行ファイルにバンドルする方法について説明します。

xml-ph-0000@deepl.internal を使用したアプリケーションのデプロイQt Creator

Qt Creator は、QMLアプリケーションをさまざまなプラットフォームにデプロイおよびパッケージ化します。モバイルデバイス向けには、Qt Creator を使用して、APKなどの各プラットフォームのパッケージ形式にアプリケーションを直接バンドルできます。

ターゲットプラットフォームでアプリケーションを実行する場合、アプリケーションは QML ライブラリの場所を参照する必要があります。qmake を使用する場合、QT_INSTALL_QML 環境変数がライブラリの場所を指します。Qt インストーラは、QML ライブラリを以下のディレクトリにインストールします。<version>/ <COMPILER>/qml 。

Qt Qml での Qt リソースシステムの使用

Qtリソースシステムを使用すると、リソースファイルをアプリケーションの実行ファイル内にバイナリファイルとして格納できます。Qtリソースシステムは、Qmlファイルや画像、音声ファイルなどのリソースを、ファイルシステム上のリソースへの相対パスや絶対パスではなく、リソースシステムのURIスキーマを通じて参照できるようにするため、Qmlアプリケーションで使用されます。

注:リソースシステムを使用する場合 、パッケージ内のリソースを更新するために、通常、QML ソースファイルが変更されるたびにアプリケーションの実行ファイルを再コンパイルする必要があります。

CMake QML モジュール APIは、QML ファイルを自動的にリソースシステムに配置します。これらにアクセスするには、メインの QML ファイルをリソースとして、または `qrc ` スキーマの URL として読み込みます。QML ファイルがリソースシステム内のどこに配置されるかは、以下のものを連結することで確認できます:

たとえば、「My.Own.Module 」という名前のモジュールは、次の場所に配置されます。

  • :/qt/qml/My/Own/Module/ 「RESOURCE_PREFIX 」として「/qt/qml 」を指定した場合、または「RESOURCE_PREFIX 」を渡さず、かつ「QTP0001」ポリシーが「NEW 」に設定されている場合。
  • :/My/Own/Module/ RESOURCE_PREFIX として を指定している場合、または を通/ RESOURCE_PREFIX 過しておらず、QTP0001ポリシーが にNEW設定されていない場合。
  • :/Some/Prefix/My/Own/Module/ Some/Prefix/ を以下のように指定している場合RESOURCE_PREFIX
  • :/ もし次のように指定している場合NO_RESOURCE_TARGET_PATH

これが完了すると、QML内で相対パスで指定されたすべてのファイルがリソースシステムから読み込まれます。リソースシステムの使用はQMLレイヤーに対して完全に透過的です。つまり、すべてのQMLコードは相対パスを使用してリソースファイルを参照し、qrc という形式を使用してはなりません。この形式は、C++コードからリソースファイルを参照する場合にのみ使用してください。

注: qmakeを使用する場合 、ファイルは手動でリソースシステムに配置する必要があります。その方法については、qmake マニュアルおよびリソースシステムに関する一般的なドキュメントを参照してください。その際も、上記で説明したパス命名規則に従うことをお勧めします。

© 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.