arg()函数

QString中的arg()方法

在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。

大概有以下三种替换的方法。
使用arg(str1, str2, str3)这种方法进行替换。
使用arg(str1).arg(str2).arg(str3)这种方法进行替换。
使用arg(int, int, int)这种方式进行替换。

1) 使用arg(str1, str2, str3)和arg(str1).arg(str2).arg(str3)

函数原型:

QString arg(const QString &a1, const QString &a2, const QString &a3,
                    const QString &a4, const QString &a5, const QString &a6,
                    const QString &a7, const QString &a8, const QString &a9) const Q_REQUIRED_RESULT;
最多只能有九个参数进行替换:
        QString str = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11").
            arg("1","2","3","4","5","6","7","8","9");
str输出为"1 2 3 4 5 6 7 8 9 %10 %11"

解决方法为在后面再加一个arg方法,放上后面两个对应的参数:

QString str = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11").
            arg("1","2","3","4","w","6","7","8","9").arg("a","b");

str输出为: “1 2 3 4 5 6 7 8 9 a b”
下面我们来看一下这两中方法的区别:

str = QString("%1 %2").arg("%1World","Hello");

输出str为:”%1World Hello” ,按顺序对应

str = QString("%1 %2").arg("%1World").arg("Hello");

输出str为:”HelloWorld %2”;
这是因为第一个arg执行完后变为:QString(“%1World %2”).arg(“Hello”),然后执行第二个。

注意以下例子:

str = QString("%1 %2").arg("%1World").arg("Hello");
//输出:"HelloWorld %2"
str = QString("%1 %2").arg("%2World").arg("Hello");
//输出:"HelloWorld Hello"
str = QString("%1 %2").arg("%3World").arg("Hello");
//输出:"%3World Hello"
str = QString("%1 %2").arg("%8World").arg("Hello");
//输出:"%8World Hello"
str = QString("%1 %6").arg("%3World").arg("Hello");
//输出:"HelloWorld %6"
str = QString("%2 %6").arg("%3World").arg("Hello");
//输出:"HelloWorld %6"
str = QString("%0 %6").arg("%3World").arg("Hello");
//输出:"HelloWorld %6"
str = QString("%-1 %6").arg("%3World").arg("Hello");
//输出:"%-1 HelloWorld"

2) 使用arg(int,int,int)

函数原型为:

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

a:表示要处理的数字;fieldWidth:字宽;base:数字基数、

如下列:
str = QString("十进制 63 的十进制为 %1")
            .arg(63,0,10);
//输出:"十进制 63 的十进制为 63"
str = QString("十进制 63 的十六进制为 %1")
            .arg(63,0,16);
  • 7
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值