Gibt es eine QString
Funktion, die ein int nimmt und als a ausgibt QString
?
c++
qt
type-conversion
Ahmad
quelle
quelle
Und wenn Sie es in einem Textkontext in eine Zeichenfolge einfügen möchten, vergessen Sie den
+
Operator. Einfach machen:quelle
+
Operator erwähnen, der bei Ganzzahlen vorsichtig ist, da er möglicherweise sehr gut funktioniert, aber intern, wird dieoperator+(const QString &s, char c)
Implementierung aufgerufen, und die Zeichenfolge enthält die Ganzzahl nicht als Zahl, sondern alsQChar::fromAscii(c)
ÄquivalentDarüber hinaus können Sie verwenden, um zu konvertieren, was Sie wollen
QVariant
. Für einint
bis einQString
bekommen Sie:A
float
zu astring
oder astring
zu afloat
:quelle
QVariant
rulez!Eine weitere Option besteht darin, QTextStream und den
<<
Operator auf die gleiche Weise zu verwenden, wie Sie escout
in C ++ tun würden :Da der Operator
<<()
überladen wurde, können Sie ihn nicht nur für mehrere Typen verwendenint
.QString::arg()
ist zum Beispiel überladen,arg(int a1, int a2)
aber es gibt keinearg(int a1, QString a2)
, daher ist die Verwendung vonQTextStream()
und Operator<<
praktisch, wenn längere Zeichenfolgen mit gemischten Typen formatiert werden.Achtung: Sie könnten versucht sein, die Funktion zu verwenden
sprintf()
, umprintf()
Anweisungen im C-Stil nachzuahmen. Es wird jedoch empfohlen, diese zu verwendenQTextStream
oderarg()
weil sie Unicodes unterstützenstring
.quelle
Ich benutze immer
QString::setNum()
.setNum()
ist in vielerlei Hinsicht überlastet. SieheQString
Klassenreferenz.quelle
Verwenden Sie in der einfachsten Form die Antwort von Georg Fritzsche
Für ein bisschen Fortgeschrittene können Sie dies verwenden,
Holen Sie die Dokumentation und ein Beispiel hier ..
quelle
Der Vollständigkeit halber können Sie die Standardbibliothek verwenden und tun
QString qstr = QString::fromStdString(std::to_string(42));
quelle
Wenn Sie eine länderspezifische Formatierung benötigen, verwenden Sie stattdessen QLocale :: toString.
quelle