检查基本的 Qt 对象
调试器的最强大功能在于,Locals 和Expressions 视图会显示属于Qt基本对象的数据。例如,对于QObject ,您看到的不是指向某个私有数据结构的指针,而是一份包含子对象、信号和槽的列表。
同样地,Qt Creator 的调试器不会显示大量指针和整数,而是以有序的方式展示QHash 或QMap 的内容。此外,调试器还会显示QFileInfo 的访问数据,以及QVariant 的实际内容。
更改值显示格式
在“Locals ”或“Expressions ”视图中,从上下文菜单中选择“Change Value Display Format ”以更改值的显示格式。可用的选项取决于当前项的类型,并由调试辅助工具提供。
若要强制以类似 C 语言的简洁格式显示结构体,请转至“Preferences ” > “Debugger ” > “Locals & Expressions ”,然后取消勾选“Use Debugging Helpers ”。

此操作仍会使用 Python 脚本,但会生成更基础的输出。若要强制对单个对象或特定类型的所有对象采用纯文本显示,请在“Locals ”或“Expressions ”视图的上下文菜单中选择“Change Value Display Format ”>“Raw ”。
通常,您可以更改字符串类数据(如QByteArray 和std::string )的编码,或在完整的编辑器窗口中显示数据。
对于映射类数据(例如QMap 、QHash 和std::map ),您可以选择“紧凑”选项,该选项将使用Name 列作为键,从而以简洁的方式显示具有短键(如数字或短字符串)的容器。例如,要展开QMap 的所有值,请选择Change Value Display Format >Compact 。
对于字符串,您可以选择“Change Value Display Format ”>“Separate Window ”,在文本编辑器中查看字符串内容,而不是在视图中显示单行项目。对于QPixmap ,您可以在逐步执行代码时看到像素图(pixmap)是一像素一像素地创建的。
更改变量值
当应用程序被中断时,您可以使用“Locals ”和“Expressions ”视图来更改简单数据类型变量的内容,例如:int 、float 、QString 和std::string 。要执行此操作,请选择“Value ”列,使用就地编辑器修改值,然后按Enter 键。
若要更改QVector 或std::vector 值的全部内容,请将所有值用逗号分隔后输入到主条目的Value 列中。但需注意,Qt Creator 不会尝试为变量重新分配内存,因此只有当新内容能容纳在原有内存中且调试器支持修改值时,才会应用这些更改。
信号-槽连接
如果某个类的实例继承自QObject ,您可以通过 Qt XML 的信号与槽机制找到与该对象的槽相连的所有其他对象。请转至“Preferences ” > “Debugger ” > “Locals & Expressions ” > “Use Debugging Helpers ”。
在“Locals ”视图中,展开该对象的条目,并在“slots”子项中打开相应槽。该视图会将连接到此槽的对象显示为该槽的子项。同样,您也可以显示信号的子项。
低级数据
如果因 Qt 对象的数据损坏而无法进行调试,您可以关闭调试辅助功能,以显示低级结构。
要关闭调试辅助工具,请在“Preferences ” > “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.