在 Qt Creator 的 Locals 视图中查看 QStandardItemModel 的内容
Posted
技术标签:
【中文标题】在 Qt Creator 的 Locals 视图中查看 QStandardItemModel 的内容【英文标题】:View contents of QStandardItemModel in Locals View in Qt Creator 【发布时间】:2018-01-12 23:32:49 【问题描述】:有没有办法通过使用 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 Pretty Printers”是否已关闭。我还尝试将myQStandardItemModel->item(0,0)->text()
添加到“表达式”窗口,但这给出了<no such value>
的值。但是,如果我将它直接放在代码中,并将其分配给临时变量,则该表达式确实有效。虽然我可以使用这种技术进行调试,但它迫使我在每次发现需要检查 QStandardItemModel
时将临时变量添加到代码中并重新编译 - 有没有更快的方法?
【问题讨论】:
【参考方案1】:我现在发现,如果我从使用 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
下面的截图说明了这一点:
.
我还尝试使用 Microsoft Visual C++ 编译器编译 Qt Creator 中的代码,并使用 Windows SDK 中的 CDB 调试器进行调试。然而,尽管这确实在 Locals 窗口中提供了比 MinGW 更多的关于 QStandardItemModel
的调试信息,但我无法在 QStandardItemModel
的每个项目中找到实际的文本数据。
【讨论】:
以上是关于在 Qt Creator 的 Locals 视图中查看 QStandardItemModel 的内容的主要内容,如果未能解决你的问题,请参考以下文章
Qt Creator Mac OS X 10.8.3 调试助手不起作用