回答:
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 float
to a string
またはa string
to 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