Réponses:
Utilisation QString::number():
int i = 42;
QString s = QString::number(i);
Et si vous voulez le mettre en chaîne dans un contexte de texte, oubliez l' +opérateur. Faites simplement:
// 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);
+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 son QChar::fromAscii(c)équivalent
De plus, pour convertir ce que vous voulez, vous pouvez l'utiliser QVariant. Pour un intà un, QStringvous obtenez:
QVariant(3).toString();
A floatvers a stringou a stringvers a float:
QVariant(3.2).toString();
QVariant("5.2").toFloat();
QVariantrulez!
Encore une autre option consiste à utiliser QTextStream et l' <<opérateur de la même manière que vous utiliseriez couten C ++:
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
L'opérateur <<()étant surchargé, vous pouvez l'utiliser pour plusieurs types, pas seulement int. QString::arg()est surchargé, par exemple arg(int a1, int a2), mais il n'y en a pas arg(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 des printf()instructions de style C , mais il est recommandé d'utiliser QTextStreamou arg()parce qu'elles prennent en charge les Unicode string.
Dans sa forme la plus simple, utilisez la réponse de Georg Fritzsche
Pour un peu avancé, vous pouvez l'utiliser,
QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
Obtenez la documentation et un exemple ici ..