2021-10-27 Qt QString arg() 使用过程遇到的问题

问题描述:

有这样一段代码

    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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值