Existe-t-il une QString
fonction qui prend un int et le renvoie en tant que QString
?
c++
qt
type-conversion
Ahmad
la source
la source
Et si vous voulez le mettre en chaîne dans un contexte de texte, oubliez l'
+
opérateur. Faites simplement:la source
+
opérateur, faites attention aux entiers, car cela pourrait très bien fonctionner mais en interne, l'operator+(const QString &s, char c)
implémentation est appelée, et la chaîne ne contiendra pas l'entier sous forme de nombre mais sonQChar::fromAscii(c)
équivalentDe plus, pour convertir ce que vous voulez, vous pouvez l'utiliser
QVariant
. Pour unint
à un,QString
vous obtenez:A
float
vers astring
ou astring
vers afloat
:la source
QVariant
rulez!Encore une autre option consiste à utiliser QTextStream et l'
<<
opérateur de la même manière que vous utiliseriezcout
en C ++:L'opérateur
<<()
étant surchargé, vous pouvez l'utiliser pour plusieurs types, pas seulementint
.QString::arg()
est surchargé, par exemplearg(int a1, int a2)
, mais il n'y en a pasarg(int a1, QString a2)
, donc l'QTextStream()
opérateur et l'opérateur<<
sont pratiques lors du formatage de chaînes plus longues avec des types mixtes.Attention: Vous pourriez être tenté d'utiliser la fonction
sprintf()
pour imiter desprintf()
instructions de style C , mais il est recommandé d'utiliserQTextStream
ouarg()
parce qu'elles prennent en charge les Unicodestring
.la source
J'utilise toujours
QString::setNum()
.setNum()
est surchargé de plusieurs façons. VoirQString
référence de classe.la source
Dans sa forme la plus simple, utilisez la réponse de Georg Fritzsche
Pour un peu avancé, vous pouvez l'utiliser,
Obtenez la documentation et un exemple ici ..
la source
Pour être complet, vous pouvez utiliser la bibliothèque standard et faire
QString qstr = QString::fromStdString(std::to_string(42));
la source
Si vous avez besoin d'une mise en forme de nombre adaptée aux paramètres régionaux, utilisez plutôt QLocale :: toString.
la source