如何将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));