Antworten:
Verwendung QString::number()
:
int i = 42;
QString s = QString::number(i);
Und wenn Sie es in einem Textkontext in eine Zeichenfolge einfügen möchten, vergessen Sie den +
Operator. Einfach machen:
// 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 erwähnen, der bei Ganzzahlen vorsichtig ist, da er möglicherweise sehr gut funktioniert, aber intern, wird die operator+(const QString &s, char c)
Implementierung aufgerufen, und die Zeichenfolge enthält die Ganzzahl nicht als Zahl, sondern als QChar::fromAscii(c)
Äquivalent
Darüber hinaus können Sie verwenden, um zu konvertieren, was Sie wollen QVariant
. Für ein int
bis ein QString
bekommen Sie:
QVariant(3).toString();
A float
zu a string
oder a string
zu a float
:
QVariant(3.2).toString();
QVariant("5.2").toFloat();
QVariant
rulez!
Eine weitere Option besteht darin, QTextStream und den <<
Operator auf die gleiche Weise zu verwenden, wie Sie es cout
in C ++ tun würden :
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
Da der Operator <<()
überladen wurde, können Sie ihn nicht nur für mehrere Typen verwenden int
. QString::arg()
ist zum Beispiel überladen, arg(int a1, int a2)
aber es gibt keine arg(int a1, QString a2)
, daher ist die Verwendung von QTextStream()
und Operator <<
praktisch, wenn längere Zeichenfolgen mit gemischten Typen formatiert werden.
Achtung: Sie könnten versucht sein, die Funktion zu verwenden sprintf()
, um printf()
Anweisungen im C-Stil nachzuahmen. Es wird jedoch empfohlen, diese zu verwenden QTextStream
oder arg()
weil sie Unicodes unterstützen string
.
Verwenden Sie in der einfachsten Form die Antwort von Georg Fritzsche
Für ein bisschen Fortgeschrittene können Sie dies verwenden,
QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
Holen Sie die Dokumentation und ein Beispiel hier ..