Qt Quick プロジェクトのデバッグ
JavaScript 関数のデバッグ、JavaScript 式の実行による UI の状態情報の取得、QML Runt プロパティや JavaScript 変数の検査、実行時の一時的な値の変更などができます。
Qt Quick プロジェクトのデバッグ方法の例については、Tutorial:Qt Quick debugging を参照してください。
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 debugging フィールドの値によって、新しいビルド構成を作成するときの動作が決まります。Enable とDisable の値は、作成するビルド構成の種類に関係なく、新しいビルド構成に 対する QML デバッグを明示的にその値に設定します。
Use Project Default は、ビルドコンフィギュレーションのタイプによって値が異なります:Debug Profile ReleaseCMakeやqmake をビルドシステムとして使用する場合、 debug や profile のビルドコンフィギュレーションでは 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 RuntプロパティやJavaScript変数を検査し、実行時に一時的に変更する。
すでに実行されているアプリケーションをデバッグするには
- 適切な設定パラメータを使ってアプリケーションをビルドする(Qt Creator を使ってアプリケーションをビルドした場合、自動的に正しい設定が使われます):
- CMake を使用する場合、target_compile_definitionsコマンドは
CMakeLists.txtファイルで定義されます:target_compile_definitions(myapp PRIVATE QT_QML_DEBUG)ここで、myappはデバッグするアプリケーションです。
- qmake を使用する場合、
.proファイルのCONFIGプロパティに以下の値が定義されます:CONFIG += qml_debug
- CMake を使用する場合、target_compile_definitionsコマンドは
- 以下の引数でアプリケーションを起動します:
-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 のビューでプロパティ値を変更すると、実行中のアプリケーショ ンでは直ちに更新されますが、ソースコードでは更新されません。
関連項目: How To: デバッグ、デバッグ、デバッガ、デバッガ、キット。
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.