繁体   English   中英

Qt 5.7 \\ n行为

[英]Qt 5.7 \n behavior

在Qt 5.7控制台应用程序中:

#include <QCoreApplication>
#include <QtDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString s = "MDJ\nTest.\n";
    qDebug() << "MDJ\nTest.\n";
    qDebug() << s;

    /* Prints:
        MDJ
        Test.

        MDJ\nTest.\n
    */

    return a.exec();
}

即\\ n在直接调试打印中按预期工作,但在调试打印(假定内容相同)变量时,仅将其视为两个纯字符。

我在Qt 5.7 Widget应用程序中也遇到类似的问题。

我已经搜索了文档,stackoverflow和Qt Center,但无法发现自己​​在做什么错。

有人可以为我指出一个解决方案吗?

该文档给您提示:

<< QString()

通常,QDebug在引号中打印字符串, 并将不可打印的字符转换为它们的Unicode值(\\ u1234)。
要在不进行转换的情况下打印不可打印的字符,请启用noquote()功能。 请注意,某些QDebug后端可能不是8位干净的。

<< const char*

将以'\\ 0'结尾的字符串s写入流,并返回对该流的引用。 该字符串从不引用也不转换为输出,但是请注意,某些QDebug后端可能不是8位纯净的。

解决方案: qDebug().noquote() << "some\\nspecial\\nchars\\n\\tincluded"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM