问题描述:
有这样一段代码
QString s
= QString("SELECT hash, type, x, y, zoom FROM TilesDownload WHERE setID = %1 AND state "
"= 0 LIMIT %2")
.arg(_task->setID(), _task->count());
LOG_DEBUG() << s;
结果输出的 s 里第二个%2 竟然没有被替换
原因分析:
以前QString 中的arg QString("%1 %2 %3").arg(str1).arg(str2).arg(str3)
从Qt的某个版本开始,Qt开始推荐QString("%1 %2 %3").arg(str1,str2,str3)
,以提高性能,所以就有了上面那段代码
查看手册才得知,新用法只是针对QString类型…不针对数字类型,有数字也要全部转换为QString
如果arg的是数字,要不全部转换为QString,要不用以前的旧方法
说到底,还是没有注意看文档引起的bug