QString が引用符付きで印刷されるのはなぜですか? 質問する

QString が引用符付きで印刷されるのはなぜですか? 質問する

qDebug()そのため、 を使用して を印刷するとQString、出力に引用符が突然表示されます。

int main()
{
    QString str = "hello world"; //Classic
    qDebug() << str; //Output: "hello world"
    //Expected Ouput: hello world
}

でこれを解決できることはわかっていますが、 がなぜそのように動作するのか、また、 の印刷方法を変更するメソッドが内部にあるかどうかqPrintable(const QString)疑問に思いました。QStringQString

ベストアンサー1

Qt 5.4にはこれを無効にする新しい機能があります。引用するとドキュメント:

QDebug と QDebug::​noquote()

QChar、QString、QByteArray の内容を囲む引用符の自動挿入を無効にし、ストリームへの参照を返します。

この関数は Qt 5.4 で導入されました。

quote() および maybeQuote() も参照してください。

(強調は私によるものです。)

この機能の使用方法の例を次に示します。

QDebug debug = qDebug();
debug << QString("This string is quoted") << endl;
debug.noquote();
debug << QString("This string is not") << endl;

もう一つの選択肢は を使うことですQTextStreamstdoutこの例がドキュメント:

QTextStream out(stdout);
out << "Qt rocks!" << endl;

おすすめ記事