Есть ли QString
функция, которая принимает int и выводит его как QString
?
c++
qt
type-conversion
Ahmad
источник
источник
И если вы хотите поместить его в строку в некотором текстовом контексте, забудьте об
+
операторе. Просто сделайте:источник
+
оператор, будьте внимательны с целыми числами, поскольку он может очень хорошо работать, но внутреннеoperator+(const QString &s, char c)
вызывается реализация, и строка не будет содержать целое число как число, но егоQChar::fromAscii(c)
эквивалентБолее того, чтобы конвертировать все, что вы хотите, вы можете использовать
QVariant
. Для того ,int
чтобыQString
вы получите:А
float
к аstring
или аstring
кfloat
:источник
QVariant
рулез!Еще один вариант заключается в использовании QTextStream и
<<
оператор во многом так же, как вы использовали быcout
в C ++:Поскольку оператор
<<()
был перегружен, вы можете использовать его для нескольких типов, а не толькоint
.QString::arg()
перегружен, напримерarg(int a1, int a2)
, но нетarg(int a1, QString a2)
, поэтому использованиеQTextStream()
оператора and<<
удобно при форматировании длинных строк со смешанными типами.Предостережение: у вас может возникнуть соблазн использовать
sprintf()
средство для имитацииprintf()
операторов в стиле C , но это рекомендуется использоватьQTextStream
илиarg()
потому, что они поддерживают Unicodestring
.источник
Я всегда использую
QString::setNum()
.setNum()
перегружен во многих отношениях. СмотритеQString
ссылку на класс.источник
В простейшей форме воспользуйтесь ответом Георга Фрицше
Для немного продвинутых, вы можете использовать это,
Получить документацию и пример здесь ..
источник
Просто для полноты вы можете использовать стандартную библиотеку и сделать
QString qstr = QString::fromStdString(std::to_string(42));
источник
Если вам нужно форматирование чисел с учетом локали, используйте взамен QLocale :: toString.
источник