1

QString引数の操作に関して重要なことを見落としている可能性があります。

str2 だけで有効な結果が得られる理由が見つかりません。str1 の方法で書かれた例をいくつか見つけたので、うまくいくはずです。ありがとう。

QString str1 = QString("%1");
str1.arg("help");
qDebug() << QString("str1 - ") + str1;

QString str2 = QString("%1").arg("help");
qDebug() << QString("str2 - ") + str2;

結果:

"str1 - %1" 
"str2 - help" 
4

2 に答える 2

3

arg()の値を割り当ててみてください

代わりに戻り値を使用してください

例えば

QString str1 = QString("%1");
str1 =str1.arg("help");
qDebug() << QString("str1 - ") + str1;
于 2012-05-30T13:49:02.107 に答える
0

あなたはあなたの例であなた自身に答えました。

QString str1 = QString("%1");  // creates str1 with value "%1"
str1.arg("help");              // returns a string with `help` and the result is lost. 
qDebug() << QString("str1 - ") + str1;  // print "str1 - %1" because str1 still have "%1"

QString str2 = QString("%1").arg("help"); // creates str2 with value !help": given by returned value of `arg` that takes a string with value "%1" and substitutes "help".
qDebug() << QString("str2 - ") + str2; // now you are printing "str2 - help"

ドキュメントQstring:argを見ると、電話をかけると電話をかけqstring("%1").arg("help")ていることがわかりますQString QString::arg ( const QString & a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' ) ) const

于 2012-05-30T14:05:17.370 に答える