QT中用0补位输出固定位数宽度字符

QT输出中用0补位的方法

    • 1. arg
    • 2.sprintf

1. arg

在Qt中 arg() 有很多的重载函数。
QString QString::arg(longlong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ’ ’ )) const
即arg(整数类型,补位数,进制,补位字符);

示例:

QString str= QString::number(18);
// str转为int  输出占4位  十进制输出  前位补0
QString strNew = QString("%1").arg(str.toInt(), 4, 10, QLatin1Char('0'));
qDebug() << strNew; // 结果strNew = "0018"


QString str16= QString::number(12);
// str转为int  输出占4位  十六进制输出  前位补0
QString strNew16 = QString("%1").arg(str16.toInt(), 4, 16, QLatin1Char('0'));
qDebug() << strNew16;  //结果strNew16 = "000c"


QString str2= QString::number(5);
// str转为int  输出占4位 二进制输出  前位补0
QString strNew2 = QString("%1").arg(str2.toInt(), 4, 2, QLatin1Char('0'));
qDebug() << strNew2;  //结果strNew2 = "101"

这种方法使用比较简单灵活。

2.sprintf

sprintf 格式化的方法:像C语言一样一个古老的方法。
// %02d:0代表补位的值为零、2表示位数。
strNumber = strNumber.sprintf("%02d:%02d:%02d", hour, minute, seconds);

你可能感兴趣的:(QT学习)