将 int 转换为带有零填充(前导零)的 QString
我想要“字符串化”一个数字并添加零填充,就像如果数字少于 5 位,printf("%05d")
将添加前导零。
I want to "stringify" a number and add zero-padding, like how printf("%05d")
would add leading zeros if the number is less than 5 digits.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用这个:
这里的 5 对应于
printf("%05d")
中的 5。 10是基数,你可以输入16来打印十六进制的数字。Use this:
5 here corresponds to 5 in
printf("%05d")
. 10 is the radix, you can put 16 to print the number in hex.QString QString::rightJustified ( int width, QChar fill = QLatin1Char( ' ' ), bool truncate = false ) const
结果现在是 00099
QString QString::rightJustified ( int width, QChar fill = QLatin1Char( ' ' ), bool truncate = false ) const
result is now 00099
简短示例:
The Short Example:
尝试:
编辑:
根据 http://qt-project.org/doc/ 的文档qt-4.8/qstring.html#sprintf:
警告:我们不建议在新的 Qt 代码中使用 QString::sprintf()。相反,请考虑使用 QTextStream 或 arg(),它们都无缝支持 Unicode 字符串并且是类型安全的。下面是一个使用 QTextStream 的示例:
阅读其他文档以了解此方法缺少的功能。
Try:
EDIT:
According to the docs at http://qt-project.org/doc/qt-4.8/qstring.html#sprintf:
Warning: We do not recommend using QString::sprintf() in new Qt code. Instead, consider using QTextStream or arg(), both of which support Unicode strings seamlessly and are type-safe. Here's an example that uses QTextStream:
Read the other docs for features missing from this method.
我正在尝试这个(确实有效,但很麻烦)。
I was trying this (which does work, but cumbersome).
我从 VB 5 开始就使用一种技术
I use a technique since VB 5