如何将int转换为QString?
是否有一个QString
函数接受一个int并将其输出为QString
?
使用QString::number()
:
int i = 42; QString s = QString::number(i);
如果你想把它放在一些文本上下文中,忘了+
运算符。 简单地做:
// 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);
而且要转换任何你想要的,你可以使用QVariant
。 对于一个int
的QString
你会得到:
QVariant(3).toString();
float
到一个string
或一个string
到浮动:
QVariant(3.2).toString(); QVariant("5.2").toFloat();
还有一种select是使用QTextStream和<<
运算符,就像在C ++中使用cout
:
QPoint point(5,1); QString str; QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ")."; // OUTPUT: // Mouse click: (5, 1).
因为运算符<<()
已被重载,所以可以将其用于多种types,而不仅仅是int
。 QString::arg()
被重载,例如arg(int a1, int a2)
,但是没有arg(int a1, QString a2)
,所以当使用QTextStream()
和operator <<
types。
警告:您可能会试图使用sprintf()
工具来模仿C风格的printf()
语句,但是build议使用QTextStream
或arg()
因为它们支持Unicode string
。
我总是使用QString::setNum()
。
int i = 10; double d = 10.75; QString str; str.setNum(i); str.setNum(d);
setNum()
在许多方面被重载。 请参阅QString
类的引用。
这是最简单的forms,请使用Georg Fritzsche的答案
有点高级,你可以使用这个,
QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
在这里获取文档和示例..
只是为了完整性,你可以使用标准库,并执行QString qstr = QString::fromStdString(std::to_string(42));