QString中的arg()用法

本文详细解析了QString::arg()函数的使用方法,包括参数替换规则、数字格式化及字符串填充技巧。通过实例展示了如何正确使用arg()进行字符串格式化,并强调了其参数限制和替换顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const

上面为arg()的函数原型。

注意:用于填充字符串中的%1,%2...为给定的参数。其中取代的为%1,%2,...,%99.注意最小为%1最大为%99

使用arg(str1).arg(str2).arg(str3)时应注意的问题。


  QString str;
  str = "%1 %2";

  str.arg("%1f", "Hello");        // returns "%1f Hello"
  str.arg("%1f").arg("Hello");    // returns "Hellof %2"

str.arg("%1f", "Hello")使用arg(str1, str2, str3)

这种方法要求str1、str2、str3都为const QString &类型.

同时,arg( )里的参数实现从1个到9个,也就是说最多只能有9个!

arg()的另外一个重载函数为:

QString QString::​arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const

这个方法用于填充字符串中的%1,%2...为给定格式的整形数字,其中第一个参数是要填充的数字,第二个参数为最小宽度,第三个参数为进制,第四个参数为当原始数字长度不足最小宽度时用于填充的字符

QString text = QString("%1:%2").arg(123, 5, 10, QChar('0')).arg(456, 5, 10, QChar('0')); 
// text = "00123:00456"

str.arg("%1f").arg("Hello")使用了arg(str1).arg(str2).arg(str3)的用法。

%1f先替换%1,此时变为%1f%2,因为前面有%1所以后面的Hello会替换掉%1,所以最后为Hello%2

注意:使用多个arg( )连接时,前面连接使用的arg( )里如果有“%+数字”的情况,后面的arg( )会同样替换!

并且后面的arg()先替换数字小的再替换数字大的。(先替换%1,再替换%2与此类似)

QString str;
  str = "%1%3%2";
  str.arg("Hello").arg(20).arg(50); // returns "Hello500"

  str = "%1%2%3";
  str.arg("Hello").arg(50).arg(20); // returns "Hello5020"

让我们看一下是具体如何替换的:

(1)首先Hello先替换%1,因此字符串变为Hello%3%2

(2)之后,先替换数字小的%2,所以20替换%2,字符串变为Hello%320

(3)最后,由于最大编号位置标记值为99,所以50取代%32

所以,最终字符串变为Hello500

 

参考:写得很详细的博客https://www.cnblogs.com/lomper/p/4135387.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值