使用零填充(前导零)将int转换为QString
我想“串”一个数字,并添加零填充,如printf("%05d")如果数字小于5位数字将添加前导零。 
用这个:
 QString number = QString("%1").arg(yourNumber, 5, 10, QChar('0')); 
 这里的5对应于printf("%05d") 。  10是基数,你可以把hex数字打印出来。 
QString QString :: rightJustified(int width,QChar fill = QLatin1Char(''),bool truncate = false)const
 int myNumber = 99; QString result; result = QString::number(myNumber).rightJustified(5, '0'); 
结果现在是00099
简短例子:
 int myNumber = 9; //Arg1: the number //Arg2: how many 0 you want? //Arg3: The base (10 - decimal, 16 hexadecimal - if you don't understand, choose 10) // It seems like only decimal can support negative numbers. QString number = QString("%1").arg(myNumber, 2, 10, QChar('0')); Output will be: 09 
尝试:
 QString s = s.sprintf("%08X",yournumber); 
编辑:根据http://qt-project.org/doc/qt-4.8/qstring.html#sprintf文档:;
警告 :我们不build议在新的Qt代码中使用QString :: sprintf()。 相反,考虑使用QTextStream或arg(),它们都可以无缝地支持Unicodestring,并且是types安全的。 这是一个使用QTextStream的例子:
 QString result; QTextStream(&result) << "pi = " << 3.14; // result == "pi = 3.14" 
阅读其他文档,了解从此方法中缺less的function。
我正在尝试(这工作,但繁琐)。
 QString s; s.setNum(n,base); s = s.toUpper(); presision -= s.length(); while(presision>0){ s.prepend('0'); presision--; } 
自从VB 5以来,我使用了一种技术
 QString theStr=QString("0000%1").arg(theNumber).right(4);