簡體   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