回答:
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);
+、オペレータ、慎重に周りの整数、それは非常によく働くかもしれないが、内部であるため、operator+(const QString &s, char c)実装が呼び出され、文字列が数値として整数が、その含まれて文句を言わないQChar::fromAscii(c)と同等
さらに、あなたが望むものを何でも変換するために、あなたは使うことができますQVariant。以下のためintにQStringあなたが得ます:
QVariant(3).toString();
A floatto a stringまたはa stringto a float:
QVariant(3.2).toString();
QVariant("5.2").toFloat();
QVariantルールズ!
さらに別のオプションは、C ++で使用するのとほぼ同じ方法でQTextStreamと<<演算子を使用することcoutです。
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
演算子<<()はオーバーロードされているため、だけでなく、複数の型に使用できますint。QString::arg()たとえばarg(int a1, int a2)、はオーバーロードされますが、はありませんarg(int a1, QString a2)。したがって、より長い文字列を混合タイプでフォーマットする場合QTextStream()、and演算子を使用すると<<便利です。
注意:あなたは使用するように誘惑されるかもしれないsprintf()模倣Cスタイルの施設printf()の文を、それを使用することをお勧めしQTextStreamたりarg()、彼らは、Unicodeサポートするためstringの。
最も単純な形式では、Georg Fritzscheの回答を使用してください
少し高度な場合は、これを使用できます。
QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const