Qt Quick プロジェクトのデバッグ
JavaScript関数のデバッグ、UIの状態に関する情報を取得するためのJavaScript式の実行、QMLプロパティやJavaScript変数の検査、および実行時にそれらの値を一時的に変更することができます。
Qt Quick プロジェクトのデバッグ方法の例については、「チュートリアル:Qt Quick のデバッグ」を参照してください。
QML デバッグの設定
Qt Quick プロジェクトのデバッグ設定手順は、プロジェクトの種類によって異なります。 Qt Quick UI Prototype または Qt Quick Application、およびQtのバージョンによって異なります。
Qt Quick UI プロジェクトのデバッグ
Qt Quick UI プロジェクト(.qmlproject )をデバッグするには、Run Settings >Debugger Settings >QML debugger で、Automatic またはEnabled を選択します。

Qt Quick アプリケーションのデバッグ
Qt Quick アプリケーションをデバッグするには:
- QML デバッグをサポートするビルド構成を作成するには、Projects >Build Settings に移動します。
- QML debugging and profiling で、「Enable 」を選択します。

注: デバッグには TCP ポートでのソケットの開放が必要ですが、これにはセキュリティ上のリスクが伴います。インターネット上の誰でも、デバッグ中のアプリケーションに接続し、任意の JavaScript 関数を実行できる可能性があります。そのため、そのポートがファイアウォールによって適切に保護されていることを確認する必要があります。
- Run Settings >Debugger settings >QML debugger で、Automatic またはEnabled を選択し、実行中のアプリケーションの QML デバッグを有効にします。
アプリケーションの C++ 部分と QML 部分を同時にデバッグするには、C++ debugger で「Automatic 」または「Enabled 」も選択してください。
- Build に移動し、Rebuild Project を選択して、プロジェクトをクリーンアップして再ビルドします。
- デバイス上でアプリケーションをデバッグするには、デバッグを開始する前に、Qt ライブラリがデバイスにインストールされていることを確認し、そのデバイスに対応するキットを選択してください。
注: デバッグに必要なqmltooling プラグインは 、「Qt Creator 」および Qt Qml のインストール中に自動的にインストールされます。QML アプリケーションをデバッグする予定がある場合は、これらのプラグインを削除しないでください。
デフォルト値の使用
Preferences >Build & Run >Default Build Properties で、QML デバッグをグローバルに有効または無効にできます。

「QML debugging 」フィールドの値によって、新しいビルド構成を作成した際の動作が決まります。「Enable 」および「Disable 」の値を設定すると、作成するビルド構成の種類にかかわらず、新しいビルド構成のQMLデバッグ設定が明示的にその値に設定されます。
Use Project Default は、値をビルド構成のタイプ(Debug 、Profile 、またはRelease )に応じて決定します。CMakeまたはqmakeをビルドシステムとして使用する場合、デバッグおよびプロファイル用のビルド構成では QML デバッグが有効になります。ただし、リリース用のビルド構成には QML デバッグが含まれません。これは、デバッグ機能によりアプリケーションが脆弱になるためです。
Projects >Build Settings >QML debugging and profiling にある「Default 」オプションは、既存の、すでに設定済みの CMake ビルドディレクトリをそのまま維持します。また、このオプションを使用すると、強制的な変更を加えずに既存のビルドをQt Creator にインポートできるため、例えばプロジェクトの完全な再ビルドを心配する必要がなくなります。後でQt Creator 以外でビルドの設定を変更した場合でも、設定は希望どおりに維持されます。
Preferences >Build & Run >Default Build Properties にあるグローバル設定とビルド設定との相互作用には、いくつかの既知の問題があります。例えば、qmake の場合、グローバル設定が影響するのは、キットを有効にした際に自動的に作成されるビルド設定のみです。また、CMake はグローバル設定を無視します。
QML デバッグの開始
アプリケーションを起動するには、[Debug ] > [Start Debugging ] > [Start Debugging of Startup Project ] を選択するか、F5 キーを押します。アプリケーションの実行が開始されると、通常どおりに動作します。その後、以下の操作を行うことができます:
- JavaScript関数のデバッグ
- JavaScript式を実行して、アプリケーションの状態に関する情報を取得する
- QMLプロパティやJavaScript変数を検査し、実行時に一時的に変更する
すでに実行中のアプリケーションをデバッグするには:
- 適切な設定パラメータを使用してアプリケーションをビルドします(Qt Creator でアプリケーションをビルドする場合、自動的に正しい設定が使用されます):
- CMake を使用する場合、
CMakeLists.txtファイルにtarget_compile_definitionsコマンドが定義されています:target_compile_definitions(myapp PRIVATE QT_QML_DEBUG)ここで、myapp はデバッグ対象のアプリケーションです。
- qmake を使用する場合、
.proファイルのCONFIGプロパティには以下の値が定義されます:CONFIG += qml_debug
- CMake を使用する場合、
- 以下の引数を指定してアプリケーションを起動します:
-qmljsdebugger=port:<port>[,host:<ip address>][,block]ここで、
port(必須)はデバッグポートを指定し、ip address(オプション)はアプリケーションが実行されているホストのIPアドレスを指定し、block(オプション)は、デバッグクライアントがサーバーに接続するまでアプリケーションの実行を阻止します。これにより、起動時からデバッグが可能になります。注: ブレークポイントの設定は 、アプリケーションがブロックモードで起動されている場合にのみ可能です。
- 「Debug 」>「Start Debugging 」>「Attach to QML Port 」に移動します。
デバッグ対象のアプリケーションが実行されているデバイス用に構成されたキットを選択します。使用するポート番号は、アプリケーションの起動時に標準出力に表示されます。
JavaScript 関数のデバッグ
Qt Creator のDebug モードを使用すると、デバッグ中にアプリケーションの状態を確認できます。デバッガーとのやり取りは、以下の方法で行えます:
項目の検査
アプリケーションの実行中に、「Locals 」ビューを使用して、QML アイテムの構造を調査できます。

デバッガを操作している間もアプリケーションを表示したままにするには、[Debug ] > [Show Application on Top] を選択します。
Locals ビューでQMLアイテムを表示するには、以下の方法があります。
- オブジェクトツリーでその項目を展開します。
- コードエディタでその項目を選択します。
- 「Debug 」>「Select 」を選択して選択モードを有効にし、実行中のアプリケーションで項目を選択します。
ソースを編集せずにプロパティの値を一時的に変更するには、プロパティをダブルクリックして新しい値を入力します。実行中のアプリケーションで結果を確認できます。
ユーザーインターフェースの検査
複雑なアプリケーションをデバッグする場合、項目が定義されているコードの位置にジャンプすることができます。
選択モードでは、実行中のアプリケーション内の項目を選択して、コード内のその定義箇所にジャンプできます。選択した項目のプロパティは、「Locals 」ビューに表示されます。
また、実行中のアプリケーションで項目の階層構造を表示することもできます。
実行中のアプリケーションで項目をダブルクリックすると、カーソル位置の項目スタックを順に表示できます。
選択モードを終了するには、[Select ] メニュー項目を切り替えます。
Qt QML Viewer で実行中のアプリケーションを最前面に移動するには、[Debug ] > [Show Application on Top] を選択します。
JavaScript 式の実行
アプリケーションがブレークポイントによって中断された場合、QML Debugger Console を使用して、現在のコンテキストで JavaScript 式を実行できます。これを開くには、[View ] > [Output ] > [QML Debugger Console] を選択します。

ソースを編集することなく、プロパティの値を一時的に変更し、実行中のアプリケーションで結果を確認できます。プロパティの値は、コード内で恒久的に変更することも可能です。
実行時に QML の変更を適用する
QML Debugger Console 、Locals 、またはExpression ビューでプロパティの値を変更すると、実行中のアプリケーションでは即座に更新されますが、ソースコードには反映されません。
Copyright © The Qt Company Ltd. and other contributors. 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.