Existe-t-il un QString
qui prend un int et le restitue sous la forme d'un QString
?
Réponses
Trop de publicités?Utilice QString::number()
:
int i = 42;
QString s = QString::number(i);
Et si vous voulez l'insérer dans une chaîne de caractères dans un contexte textuel, oubliez l'option +
opérateur. Il suffit de faire :
// 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);
Une autre option consiste à utiliser QTextStream et le <<
de la même manière que vous utiliseriez l'opérateur cout
en C++ :
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
Parce que l'opérateur <<()
a été surchargé, vous pouvez l'utiliser pour plusieurs types, et pas seulement pour le type int
. QString::arg()
est surchargé, par exemple arg(int a1, int a2)
mais il n'y a pas de arg(int a1, QString a2)
, de sorte que l'utilisation de QTextStream()
et l'opérateur <<
est pratique pour formater des chaînes de caractères plus longues avec des types mixtes.
Attention : Vous pourriez être tenté d'utiliser la fonction sprintf()
possibilité d'imiter le style C printf()
mais il est recommandé d'utiliser les déclarations QTextStream
o arg()
parce qu'ils supportent l'Unicode string
s.