Ответы:
Используйте QString::number()
:
int i = 42;
QString s = QString::number(i);
И если вы хотите поместить его в строку в некотором текстовом контексте, забудьте об +
операторе. Просто сделайте:
// 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+(const QString &s, char c)
вызывается реализация, и строка не будет содержать целое число как число, но его QChar::fromAscii(c)
эквивалент
Более того, чтобы конвертировать все, что вы хотите, вы можете использовать QVariant
. Для того , int
чтобы QString
вы получите:
QVariant(3).toString();
А float
к а string
или а string
к float
:
QVariant(3.2).toString();
QVariant("5.2").toFloat();
QVariant
рулез!
Еще один вариант заключается в использовании QTextStream и <<
оператор во многом так же, как вы использовали бы cout
в C ++:
QPoint point(5,1);
QString str;
QTextStream(&str) << "Mouse click: (" << point.x() << ", " << point.y() << ").";
// OUTPUT:
// Mouse click: (5, 1).
Поскольку оператор <<()
был перегружен, вы можете использовать его для нескольких типов, а не только int
. QString::arg()
перегружен, напримерarg(int a1, int a2)
, но нет arg(int a1, QString a2)
, поэтому использование QTextStream()
оператора and <<
удобно при форматировании длинных строк со смешанными типами.
Предостережение: у вас может возникнуть соблазн использовать sprintf()
средство для имитации printf()
операторов в стиле C , но это рекомендуется использовать QTextStream
или arg()
потому, что они поддерживают Unicode string
.
В простейшей форме воспользуйтесь ответом Георга Фрицше
Для немного продвинутых, вы можете использовать это,
QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
Получить документацию и пример здесь ..