我有以下QString:
QString funcProxy = "executeProxy(\"%1\", \"%2\", \"%3\")";每个on的数据如下:
QList<QString> listProxy;如何使用arg()方法将listProxy中的数据添加到funcProxy中?
funcProxy.arg(??);谢谢
发布于 2015-12-03 06:10:43
关于@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("\", \""));发布于 2015-12-02 21:03:48
如果您知道列表中有三个元素,您可以这样做:
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));https://stackoverflow.com/questions/34052431
复制相似问题