QString arg()打印限制?

时间:2012-05-30 13:44:13

标签: qt qstring

我可能错过了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" 

2 个答案:

答案 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