为了适配多种数据类型,QString::arg有多个重载版本。
1、QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' '))
参数2是最小宽度,不足此宽度则用参数三补全:
#define debug qDebug()<<
int main(int argc, char *argv[])
{
debug QString("hi,my name is %1").arg(QString("张三"),10,QChar{'k'});
}
由于arg的重载版本太多,参数3要写清楚QChar类型。
如果参数2是负数,那么生成的替换文本是左对齐的:
2、 QString::arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) (qlonglong 就是long long类型)
参数2、4同上,参数3是指定将整数转成字符串使用的进制。
#define debug qDebug()<<
int main(int argc, char *argv[])
{
debug QString("我有 %1 元人民币。").arg(qlonglong{99999},13,10,QChar{'w'});
}
16进制的:
其他类型的整形、char的arg重载与此形式相似,也都有4个参数,第一个参数不同,后3个参数和用法是相同的。
3、QString::arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' '))
参数2、参数5同上。
c/c++中的浮点数可以用科学计数法表示;超过有效位之后会四舍五入。参数3表示格式:
- e:使用科学计数法,科学计数法符号使用e
- E:使用科学计数法,科学计数法符号使用E
- f:不使用科学计数法
- g:使用e和f中简洁的那个
- G:使用E和f中简洁的那个
参数4表示精度,即小数点后面几位小数。
4、QString::arg(const QString &a1, const QString &a2)
一个arg里有多个替换字符串。
这种类型只适合字符串,换成其他类型就不行了: