You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QString的arg()多参数疑问:仅%1为何传多个参数?

关于QString::arg多参数传入的疑问解答

先看你贴的代码:

QString("%1").arg(2176782335, 6, 36, QChar('0')).toLatin1()

你疑惑为啥一个%1占位符却传了多个参数?其实这是Qt的arg()方法的重载版本,不是给多个占位符传值的那种。

这个重载是专门用来对单个数值做格式化的,四个参数的作用分别是:

  • 2176782335:要转换的原始数值
  • 6:要求格式化后的字符串最小长度为6位,长度不够时用填充字符补全
  • 36:转换时使用36进制(0-9加上a-z共36个字符)
  • QChar('0'):当数值长度不足6位时,在前面补0

举个实际效果的例子:把2176782335转成36进制本身是1z9h6t,长度是5位,所以会在前面补一个0,最终得到01z9h6t。

而你以为的“一个占位符对应一个参数”,是arg()的另一种重载——比如QString("%1-%2").arg(10).arg(20),这种是依次给多个占位符传值的版本,和你遇到的这个完全是两回事。

内容的提问来源于stack exchange,提问作者bopeh74638

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 01:15:38