How to convert int to QString?
是否有一个
使用
1 2 | int i = 42; QString s = QString::number(i); |
如果你想把它放到一些文本上下文中的字符串中,那就不要考虑
1 2 3 4 5 6 7 8 9 10 11 | // Qt 5 + C++11 auto i = 13; auto printable = QStringLiteral("My magic number is %1. That's all!").arg(i); // Qt 5 int i = 13; QString printable = QStringLiteral("My magic number is %1. That's all!").arg(i); // Qt 4 int i = 13; QString printable = QString::fromLatin1("My magic number is %1. That's all!").arg(i); |
此外,要转换任何您想要的,您可以使用
1 | QVariant(3).toString(); |
一个
1 2 | QVariant(3.2).toString(); QVariant("5.2").toFloat(); |
还有一种选择是使用QtTraseFrand和EDCOX1的5×操作符,其方式与使用C++中的EDCOX1(6)一样大。
1 2 3 4 5 6 | QPoint point(5,1); QString str; QTextStream(&str) <<"Mouse click: (" << point.x() <<"," << point.y() <<")."; // OUTPUT: // Mouse click: (5, 1). |
因为操作符
注意:您可能会尝试使用
我总是用
1 2 3 4 5 | int i = 10; double d = 10.75; QString str; str.setNum(i); str.setNum(d); |
用最简单的形式,用Georg Fritzsche的答案
稍微高级一点,你可以用这个,
1 | QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const |
在这里获取文档和示例。
如果需要区分区域设置的数字格式,请改用qlocale::toString。
为了完整起见,您可以使用标准库并执行