如何将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 。 对于一个intQString你会得到:

 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,而不仅仅是intQString::arg()被重载,例如arg(int a1, int a2) ,但是没有arg(int a1, QString a2) ,所以当使用QTextStream()和operator <<types。

警告:您可能会试图使用sprintf()工具来模仿C风格的printf()语句,但是build议使用QTextStreamarg()因为它们支持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));