Qt QString中arg的使用,以及保留小数位数

QString 功能强大,尤其是arg函数特别丰富好用,可用于对数字的长度的对齐,和不同数值之间进制转换后显示的字符串,以及%1 %2 %3等字符的替换。

1 arg 数值转字符串补齐长度

源函数如下:

fieldWidth :格式化后的字符串宽度;
base :指定将整数a转换为字符串时使用的基数(默认是十进制),还可以是二进制2 ,十六进制 16;
fillChar :待填充字符

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

默认数值是3,填充长度为4,显示为10进制,长度不够就补0,最后字符串为“0003”

 int num = 3;
    QString  str = QString("%1")
             .arg(num, 4, 10, QChar('0'));
    // str == "0003"
    qDebug() << str;

对于浮点数,可通过QString::number来决定保留小数点的位数

 QString  str = QString::number(32, 'f', 2);
    // str == "32.00"
    qDebug() << str;

Qt QString中arg的使用,以及保留小数位数_第1张图片

2 arg 数值按照进制格式化成字符串

将10进制的63变成16进制的3f

  QString str;
     str = QString("Decimal 63 is %1 in hexadecimal")
             .arg(63, 0, 16);
     // str == "Decimal 63 is 3f in hexadecimal"
    qDebug() << str;

还可以根据不同国家的千位分隔符显示数值字符串

 QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
 QString  str = QString("normal:%1     long split: %L2   hexadecimal: %L3")
             .arg(12345)
             .arg(12345)
             .arg(12345, 0, 16);
     // str == "normal:12345     long split: 12,345   hexadecimal: 3039"
    qDebug() << str;

3 arg %1 %2…%99位置替换为字符

首先,arg(my)替换%1。然后arg(he)替换%2。最后,arg(word)替换%3。

  QString my = "my";
  QString he = " Hello ";
  QString word = "Word";
  QString str = QString("Look this is %1 And %2 : %3").arg(my).arg(he).arg(word);
  qDebug() << str;
// 输出 str = "Look this is my And  Hello  : Word"

你可能感兴趣的:(Qt,qt,开发语言,windows)