【Qt问题记录】使用QDebug类输出不带转义或双引号

问题

使用Qt进行编程时,需要借助输出信息验证编码的正确性。
默认情况下,如果输出的是字符串,qDebug() 会在字符串的两侧加上引号,有时还会转义。
如下所示:

    QString strInfo = QStringLiteral("helloworld");
    qDebug() << strInfo;

输出结果是:
在这里插入图片描述

解决方案

有以下三种解决方案:

  1. 使用qDebug().noquote()

qDebug().noquote() 是 Qt 框架中的一个函数,用于在调试输出中显示不带引号的字符串。

例如:

    QString strInfo = QStringLiteral("helloworld");
    qDebug().noquote() << strInfo;

在这里插入图片描述
2. 使用qDebug("strInfo")

如果是字符串,可以直接在qDebug()函数内输出

qDebug("strInfo");
  1. 使用strInfo.toStdString().data()
QString strInfo = QStringLiteral("helloworld");
    qDebug() << strInfo.toStdString().data();

以上三种都可以输出不带双引号的字符串。

关闭程序的信息输出

需要在pro文件里加上一行预定义宏即可。

DEFINES += QT_NO_DEBUG_OUTPUT

结论

人生无须太多的准备,上帝给了我们腿与脚,就是让我们不停地前行

猜你喜欢

转载自blog.csdn.net/MrHHHHHH/article/details/135023640