在visual studio 2019调试模式下查看QTreeWidget、QTreeWidgetItem类型的变量的值

本文介绍了在VisualStudio2019中调试Qt代码时,如何查看QTreeWidget中的QTreeWidgetItem节点及其子节点的值。作者遇到了编译器优化导致无法直接在监视窗口查看子节点的问题,尝试禁用编译优化后问题仍然存在。为了解决这个问题,文章提到了使用Qt的qDebug()函数进行输出调试,展示了如何输出子节点的文本信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

前言

使用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);

   

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值