系列文章目录
前言
使用visual studio2019调试代码时,遇到QTreeWidget、QTreeWidgetItem类型的变量,如何查看节点和子节点的值呢,我在visual studio2019调试代码时,监视窗口显示如下:
上图中cameraNode是一个QTreeWidgetItem类型的变量,我知道能看到这个cameraNode节点有三个子节点,但我不能看到她的子节点的名称等属性。
于是我视图添加新的监视变量:cameraNode->text(0) 代表cameraNode的第一个子节点
cameraNode->text(1) 代表cameraNode的第二个子节点
cameraNode->text(2) 代表cameraNode的第三个子节
但是调试提示: cameraNode->text(0) 函数 QTreeWidgetItem::text 没有地址,原因可能是编译器优化。
一、编译优化设置
项目属性窗口,选择C/C++ ->优化->已禁用(/Od)
我已经设置禁止编译器优化,问题依旧
二、打印输出
使用Qt自带的qDebug()
//任务节点
QString preTask = u8"任务:";
QTreeWidgetItem* taskNode = nullptr;
for(QString item : m_taskNumSet)
{
taskNode = new QTreeWidgetItem();
QString taskNum = preTask + item;
taskNum = taskNum.trimmed();
taskNode->setText(0, taskNum);
taskNode->setCheckState(0, Qt::Checked);
cameraNode->addChild(taskNode);
}
qDebug() << "taskNode:" << "cameraNode->child(0)->text(0)=" << cameraNode->child(0)->text(0) << "cameraNode->child(1)->text(0)=" << cameraNode->child(1)->text(0) << "cameraNode->child(2->text(0)" << cameraNode->child(2)->text(0);