首页 > 解决方案 > Qt Creator 中 CDB 中 QObject 的 objectName 在哪里?

问题描述

我经常发现自己在调试信号和插槽,这意味着我正在研究 Qt 源代码。我目前正在努力确定 Qt 类插槽的信号发送者。在我自己的类中,我只需auto test = QObject::sender();在插槽中插入一行并从那里进行调试,但是对于 Qt 类的插槽,我没有该选项。

我在 CDB 调试窗口中四处寻找[d]、、、等d_ptr[parent]根本找不到发件人的 objectName 或 className。

调试窗口截图

它在哪里?我如何找到它?我似乎永远无法让表达式评估器在 Qt Creator 中工作,所以这不是一个选择。

Qt 版本是 5.11.1 和 Qt Creator 4.7.0。

标签: qtdebuggingqt5qt-creatorsignals-slots

解决方案


设置中有一个复选框:Debugger > Locals & Expressions > Show QObject names if available。然后,您应该在对象旁边的“值”列中看到它。

或者您可以在 QObject 的数据中查找它:

在此处输入图像描述


推荐阅读