QList <qstring>到QString.arg()

时间:2015-12-02 20:32:01

标签: qt

我有以下QString:

QString funcProxy = "executeProxy(\"%1\", \"%2\", \"%3\")";

每个on的数据位于:

QList<QString> listProxy;

如何使用arg()方法将listProxy中的数据添加到funcProxy?

funcProxy.arg(??);

由于

2 个答案:

答案 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("\", \""));
相关问题