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