在Qt Creator中的Locals View中查看QStandardItemModel的内容

时间:2018-01-12 23:32:50

标签: c++ qt debugging qt-creator

有没有办法使用Qt Creator中的Locals and Expressions窗口查看存储在QStandardItemModel对象中的数据,以便在调试时监控它们的值?

我可以在Locals窗口中看到数组的内容,但对于QStandardItemModel,表示不会显示内部数据: Image of Qt Creator Locals Window showing a QStandardItemModel

我正在使用Qt Creator版本4.0.3和Qt版本5.7.0。

我已经尝试了以下方法,但他们没有帮助:

  • 右键单击“本地”窗口中的对象,选择“更改值显示格式”'并将其设置为10个项目的原始数据,字符串或数组;
  • 检查'加载系统GDB漂亮打印机'在工具/选项下关闭。

我还尝试将myQStandardItemModel->item(0,0)->text()添加到“表达式”窗口,但这会给出<no such value>的值。但是,如果我将它直接放在代码中,并将其分配给临时变量,则此表达式可以正常工作。虽然我可以使用这种技术进行调试,但它迫使我在我的代码中添加临时变量,并在每次发现需要检查QStandardItemModel时重新编译 - 是否有更快的方法?

1 个答案:

答案 0 :(得分:0)

我现在发现,如果我从使用Qt Creator切换到使用Microsoft Visual Studio 2015调试我的代码,我可以在中断模式下在Locals窗口中看到QStandardItemModel的内容。 QStandardItemModel中第一项的数据可在以下位置找到:

myQStandardItemModel / QAbstractItemModel / QObject / d_ptr / [Raw View] / d / 
[QStandardItemModelPrivate] / root / [Raw View] / d / d_ptr / [Raw View] / d / children / 
[0] / d_ptr / [Raw View] / d / values / [0] / value

以下截图说明了这一点:

Image of QStandardItemModel in VS2015 Locals

我还尝试使用Microsoft Visual C ++编译器在Qt Creator中编译代码,并使用Windows SDK中的CDB调试器进行调试。但是,虽然这确实在“本地”窗口中提供了关于QStandardItemModel而不是MinGW的更多调试信息,但我无法在QStandardItemModel的每个项目中找到实际的文本数据。