このページでは

基本的な Qt オブジェクトを調べる

デバッガの最も強力な機能は、LocalsExpressions のビューが Qt の基本オブジェクトに属するデータを表示することです。例えば、QObject の場合、プライベートなデータ構造へのポインタの代わりに、子オブジェクト、シグナル、スロットのリストが表示されます。

同様に、Qt Creator のデバッガは、多くのポインタや整数を表示する代わりに、QHashQMap の内容を整然と表示します。また、デバッガはQFileInfo のアクセス・データとQVariant実際の内容を表示する。

値の表示形式の変更

Locals またはExpressions のビューで、コンテキスト・メニューからChange Value Display Format を選択して、値の表示形式を変更します。利用可能なオプションは現在のアイテムのタイプに依存し、デバッグ・ヘルパーによって提供されます。

構造体をプレーンな C ライクな表示にするには、Preferences>Debugger >Locals & Expressions を開き、Use Debugging Helpers をクリアします。

デバッガ環境設定の「ローカルと式」タブ

これでもPythonスクリプトを使用しますが、より基本的な出力を生成します。単一のオブジェクト、または指定されたタイプのすべてのオブジェクトに対してプレーン表示を強制するには、Locals またはExpressions ビューのコンテキストメニューでChange Value Display Format >Raw を選択します。

通常、QByteArraystd::string のような文字列のようなデータのエンコーディングを変更したり、フルエディターウィンドウでデータを表示することができます。

QMapQHashstd::map のようなマップのようなデータでは、キーにName 列を使用し、数字や短い文字列のような短いキーを持つコンテナを簡潔に表示するコンパクト・オプションを選択できます。たとえば、QMap のすべての値を展開するには、Change Value Display Format >Compact を選択します。

文字列の場合、Change Value Display Format >Separate Window を選択すると、ビュー内の1行項目ではなく、テキスト編集内の文字列コンテンツを見ることができます。QPixmap では、コードをステップスルーするときに、ピクセルごとに作成される pixmap を見ることができます。

変数値の変更

Locals およびExpressions のビューを使用して、単純なデータ型の変数、例えばintfloatQString およびstd::string の内容を、アプリケーションの中断時に変更することができます。これを行うには、Value 列を選択し、インプレース・エディタで値を変更し、Enter を選択します。

QVector またはstd::vector の値の完全な内容を変更するには、メイン・エントリーのValue 列に、カンマで区切られたすべての値を入力する。ただし、Qt Creator は変数のメモリーを再割り当てしようとしないため、新しい内容が古いメモリーに収まり、デバッガーが値の変更をサポートしている場合にのみ変更が適用されます。

シグナル・スロット接続

あるクラスのインスタンスがQObject から派生している場合、Qt のシグナルとスロットのメカニズムを使って、このオブジェクトのスロットに接続されている他のオブジェクトをすべて見つけることができます。Preferences>Debugger >Locals & Expressions >Use Debugging Helpers と進んでください。

Locals のビューで、オブジェクトのエントリを展開し、slots のサブ項目でスロットを開きます。ビューには、このスロットに接続されているオブジェクトが、スロットの子として表示されます。同様に、シグナルの子も表示できます。

低レベルデータ

データが壊れているために Qt オブジェクトをデバッグできない場合、デバッグヘルパーをオフにすることで、低レベルの構造を表示することができます。

デバッグヘルパーをオフにするには、Preferences>Debugger >Locals & ExpressionsUse Debugging Helpers をクリアしてください。

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.