检查基本 Qt 对象

调试器最强大的功能是在LocalsExpressions 视图中显示属于 Qt 基本对象的数据。例如,在QObject 中,你看到的不是指向某个私有数据结构的指针,而是子对象、信号和槽的列表。

同样,Qt Creator 的调试器不是显示许多指针和整数,而是有序地显示QHashQMap 的内容。此外,调试器还会显示QFileInfo 的访问数据和QVariant真实内容。

更改数值显示格式

LocalsExpressions 视图中,选择上下文菜单中的Change Value Display Format 可更改数值显示格式。可用选项取决于当前项目的类型,由调试帮助程序提供。

要强制使用类似纯 C 语言的结构显示,请访问首选项>Debugger >Locals & Expressions ,然后清除Use Debugging Helpers

调试器首选项中的本地和表达式选项卡

这仍然使用 Python 脚本,但会生成更基本的输出。要对单个对象或给定类型的所有对象强制使用纯文本显示,请在LocalsExpressions 视图的上下文菜单中选择Change Value Display Format >Raw

通常情况下,您可以更改字符串数据(如QByteArraystd::string )的编码,或在完整的编辑器窗口中显示数据。

您可以为类似地图的数据(如QMapQHashstd::map )选择一个紧凑选项,该选项使用Name 列作为键,从而简洁地显示具有短键(如数字或短字符串)的容器。例如,要展开QMap 的所有值,请选择Change Value Display Format >Compact

对于字符串,可以选择Change Value Display Format >Separate Window 来查看文本编辑器中的字符串内容,而不是视图中的单行项目。对于QPixmap ,您可以通过代码查看逐个像素创建的像素图。

更改变量值

当应用程序中断时,您可以使用LocalsExpressions 视图更改简单数据类型变量的内容,例如int,float,QStringstd::string 。为此,请选择Value 列,使用就地编辑器修改值,然后选择回车

要更改QVectorstd::vector 值的全部内容,请在主条目Value 列中键入用逗号分隔的所有值。不过,Qt Creator 不会尝试为变量重新分配内存,因此只有当新内容适合旧内存且调试器支持更改值时,才会应用更改。

信号槽连接

如果一个类的实例派生于QObject ,你可以通过 Qt XML 的信号和插槽机制找到与该对象的插槽相连的所有其他对象。转到首选项>Debugger >Locals & Expressions >Use Debugging Helpers

Locals 视图中,展开对象条目并打开插槽子项中的插槽。该视图会将与该槽相连的对象显示为槽的子对象。同样,您也可以显示信号的子对象。

低级数据

如果因为 Qt 对象的数据已损坏而无法调试,可以关闭调试助手,使低层结构可见。

要关闭调试辅助工具,请在首选项>Debugger >Locals & Expressions 中清除Use Debugging Helpers

另请参阅 "如何:调试"、"调试"、"调试器"和 "调试器"。

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.