我可能错过了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"
答案 0 :(得分:3)
尝试分配arg()
的值所以请改用返回值
e.g。
QString str1 = QString("%1");
str1 =str1.arg("help");
qDebug() << QString("str1 - ") + str1;
答案 1 :(得分: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