每个人都喜欢
QString("Put something here %1 and here %2")
.arg(replacement1)
.arg(replacement2);
但是一旦你有最微弱的机会,replacement1
实际上包含%1
甚至%2
任何地方,事情就会变得很痒。然后,第二个QString::arg()
将仅替换重新引入的事件%1
或两者%2
。无论如何,你不会得到"%1"
你可能想要的文字。
有什么标准技巧可以克服这个问题吗?
如果你需要一个例子来玩,拿这个
#include <QCoreApplication>
#include <QDebug>
int main()
{
qDebug() << QString("%1-%2").arg("%1").arg("foo");
return 0;
}
这将输出
"foo-%2"
代替
"%1-foo"
正如预期的那样(不是)。
qDebug() << QString("%1-%2").arg("%2").arg("foo");
给
"foo-foo"
和
qDebug() << QString("%1-%2").arg("%3").arg("foo");
给
"%3-foo"