我有以下QString:
QString funcProxy = "executeProxy(\"%1\", \"%2\", \"%3\")";
每个on的数据位于:
QList<QString> listProxy;
如何使用arg()方法将listProxy中的数据添加到funcProxy?
funcProxy.arg(??);
由于
答案 0 :(得分:0)
如果您知道列表中只有3个元素,则可以执行以下操作:
funcProxy.arg(listProxy.at(0)).arg(listProxy.at(1)).arg(listProxy.at(2));
否则,你可以使用它:
for (int i = 0; i < listProxy.size(); ++i)
funcProxy.replace(QString("%%1").arg(i+1), listProxy.at(i));
答案 1 :(得分:0)
关于@owacoder的答案,你实际上并不需要替换函数,以下内容应该是正确的:
for (int i = 0; i < listProxy.size(); ++i) {
funcProxy = funcProxy.arg(listProxy.at(i));
}
为什么要问:来自QString::arg()
的文档返回此字符串的副本,其中编号最小的位置标记替换为字符串
因此它用arg调用中的字符串替换最小数字。第一次迭代包含%1
,%2
和%3
,因此它将替换%1
。下一次迭代包含%2
和%3
,因此替换%2
。
或者,如果您可以控制funcProxy
,则可以执行以下操作,您可以将列表更改为QStringList
:
QString funcProxy = "executeProxy(\"%1\")";
QStringList listProxy{"a", "b", "c"};
funcProxy = funcProxy.arg(listProxy.join("\", \""));