问题
使用Qt进行编程时,需要借助输出信息验证编码的正确性。
默认情况下,如果输出的是字符串,qDebug()
会在字符串的两侧加上引号,有时还会转义。
如下所示:
QString strInfo = QStringLiteral("helloworld");
qDebug() << strInfo;
输出结果是:
解决方案
有以下三种解决方案:
- 使用
qDebug().noquote()
qDebug().noquote()
是 Qt 框架中的一个函数,用于在调试输出中显示不带引号的字符串。
例如:
QString strInfo = QStringLiteral("helloworld");
qDebug().noquote() << strInfo;
2. 使用qDebug("strInfo")
如果是字符串,可以直接在qDebug()
函数内输出
qDebug("strInfo");
- 使用
strInfo.toStdString().data()
QString strInfo = QStringLiteral("helloworld");
qDebug() << strInfo.toStdString().data();
以上三种都可以输出不带双引号的字符串。
关闭程序的信息输出
需要在pro文件里加上一行预定义宏即可。
DEFINES += QT_NO_DEBUG_OUTPUT
结论
人生无须太多的准备,上帝给了我们腿与脚,就是让我们不停地前行
。