如何将QString发送到调试输出?

6
我无法使用QDebug在Qt中打印出QString。
以下是一些尝试(均失败):
    QDebug(letters.toStdString());
    QDebug(letters.toLatin1());
    QDebug() << letters.toUtf8();
    QDebug() << letters.toWCharArray();
    QDebug() << letters.toStdString();
    QDebug() << letters;

我已经包含了:

#include <QtDebug>
#include <QDebug>

我正在使用Qt 5.2。我还在我的项目文件中添加了CONFIG += console

我的错误是“没有相应的函数调用QDebug :: QDebug()”

对于QDebug(letters.toLatin1());,我也收到“QDebug(QByteArray)存在歧义”的消息。


你得到了什么错误? - SirDarius
3
你应该稍微改变一下用法:qDebug() << letters; - mexus
@SirDarius 我编辑了问题来回答你。 - user929404
@mexus 看看第六次尝试。 - user929404
3
QDebug和qDebug不是同一个东西... - SirDarius
显示剩余2条评论
1个回答

13

正确的做法是:

#include <QDebug>

// snip...

QString letters;

qDebug() << letters;

请注意,使用以小写字母开头的qDebug()QDebug类不是同一件事情。

请参见http://qt-project.org/doc/qt-5.0/qtcore/qtglobal.html#qDebug。它是一个方便的函数,返回一个已配置好的QDebug对象。


这就是我所做的,但它不起作用。 - user929404
2
@user929404,应该是 qDebug 而不是 QDebug。要认真阅读,不要猜测。 - RedX
2
值得一提的是,您可以使用 qDebug("%s", qPrintable(qstring_instance)); 输出 QString。 - Kamil Klimek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接