Как перевести int в qstring
How to convert int to QString?
9 Answers 9
And if you want to put it into string within some text context, forget about + operator. Simply do:
A float to a string or a string to a float :
Yet another option is to use QTextStream and the operator in much the same way as you would use cout in C++:
Caution: You might be tempted to use the sprintf() facility to mimic C style printf() statements, but it is recommended to use QTextStream or arg() because they support Unicode string s.
setNum() is overloaded in many ways. See QString class reference.
In it’s simplest form, use the answer of Georg Fritzsche
For a bit advanced, you can use this,
Get the documentation and an example here..
If you need locale-aware number formatting, use QLocale::toString instead.
Just for completeness, you can use the standard library and do QString qstr = QString::fromStdString(std::to_string(42));
QLocale has a handy way of converting numbers. It’s not much more typing than the accepted answer, but is more useful in the case of floats; so I like to do both this way. Here’s for an int:
and here’s for a float:
but according to the help «Unlike QLocale::toString(), this function does not honor the user’s locale settings.»
Русские Блоги
QT —— Преобразование QString и Int, double, char *, DateTime
int конвертируется в QString
[static] QString QString::number (int n, int base = 10)
параметр:
Примеры:
удвоить до QString
[static] QString QString::number (double n, char format = ‘g’, int precision = 6)
Ссылка на формат:
Конвертировать QString в int
int QString::toInt (bool *ok = nullptr, int base = 10) const
QString для удвоения
double QString::toDouble (bool *ok = nullptr) const
Конвертировать QString в char *
char * конвертируется в QString
Конвертировать QDatetime в QString
String QDate Time::toString (Формат QStringView) const // формат для преобразования
Ссылка на формат:
Expression
Output
the day as number without a leading zero (1 to 31)
the day as number with a leading zero (01 to 31)
the abbreviated localized day name (e.g. ‘Mon’ to ‘Sun’). Uses the system locale to localize the name, i.e. QLocale::system().
the long localized day name (e.g. ‘Monday’ to ‘Sunday’). Uses the system locale to localize the name, i.e. QLocale::system().
the month as number without a leading zero (1-12)
the month as number with a leading zero (01-12)
the abbreviated localized month name (e.g. ‘Jan’ to ‘Dec’). Uses the system locale to localize the name, i.e. QLocale::system().
the long localized month name (e.g. ‘January’ to ‘December’). Uses the system locale to localize the name, i.e. QLocale::system().
the year as two digit number (00-99)
the year as four digit number
These expressions may be used for the time:
Expression
Output
the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)
the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)
the hour without a leading zero (0 to 23, even with AM/PM display)
the hour with a leading zero (00 to 23, even with AM/PM display)
the minute without a leading zero (0 to 59)
the minute with a leading zero (00 to 59)
the whole second without a leading zero (0 to 59)
the whole second with a leading zero where applicable (00 to 59)
the fractional part of the second, to millisecond precision, including trailing zeroes where applicable (000 to 999).
use am/pm display. a/ap will be replaced by either «am» or «pm».
Как преобразовать QString в int?
у меня есть QString в моих источниках.
Поэтому мне нужно преобразовать его в целое число без «кб».
Я старался Abcd.toInt() Но это не работает.
Решение
В вашей строке нет всех цифровых символов. Таким образом, вы должны разделить на пространство
Обновить: Я обновляю старый ответ. Это был прямой ответ на конкретный вопрос со строгим предположением. Однако, как отметили @DomTomCat в комментариях и @Mikhail в ответе, в общем, всегда следует проверять, успешна ли операция или нет. Так что использование логического флага необходимо.
Кроме того, если вы принимаете эту строку в качестве пользовательского ввода, вы также должны сомневаться в том, действительно ли строка разделяется с пробелом. Если существует вероятность того, что предположение может быть нарушено, то проверяющее регулярное выражение является более предпочтительным. Регулярное выражение, подобное следующему, извлечет значение с плавающей запятой и префиксный символ «b». Тогда вы можете смело конвертировать захваченные строки в двойные.
Вы можете иметь функцию полезности, как показано ниже
Другие решения
Тогда используйте toDouble() чтобы получить число с плавающей запятой и округлить, как вы хотите.
Не забудьте проверить, если преобразование прошло успешно!
В качестве предложения вы также можете использовать QChar::digitValue() получить числовое значение цифры. Например:
Русские Блоги
Основные типы данных в Qt
1.1 Базовый тип данных QGlobal
1.2 Общие функции
Сравните размер чисел с плавающей точкой
Получить переменные среды
result size(100,14) size1(104,10) size2(104.0,10.0);
Отладчик расширится в третью форму
QString: манипулирование строкой Qt
2.3 Заменить
replace (1,0, str1); // Параметр один: начиная с какой позиции, параметр два: несколько позиций от базовой точки к задней части, а затем поместить этот абзац Удалить и заменить на ул
2.5 Вставка QString
2.6 оценивается как NULL | Пусто
2.7 Найдите, где появляется строка
2.8 Найдите количество вхождений строки
2.9 Найдите, содержит ли она другую строку
2.10 Перехват строки
2.11. Число в строку QString
2.12 Форматированный вывод
2.13 QString и std: строковое преобразование
QByteArray
3.1 Инициализация
3.2 Доступ
3.3 QByteArray и преобразование char *
3.4 Понимание / 0
При преобразовании в строку \ 0 завершится здесь и получит 3, hel
3.5 QVariant
Переменные QVariant не имеют типа данных, как общее тело (Union) наиболее распространенного типа данных Qt, но это может быть только один объект за раз, и некоторые объекты могут быть многозначными (например, список строк)
Вы можете использовать toT (): T, чтобы представить тип данных, преобразовать QVariant в другой тип и получить значение, вот назначение объекта, поэтому исходный объект не изменится
Урок №2. Строки в Qt5 и класс QString
Обновл. 16 Сен 2021 |
На этом уроке мы будем работать со строками. Для этого в Qt5 реализован класс QString, который является очень мощным классом с большим количеством полезных методов.
Строки
Класс QString предоставляет Unicode-строку, которая сохраняет обычную строку в качестве 16-битных значений типа QChar, где каждый QChar соответствует одному символу формата Unicode 4.0. В отличие от строк во многих других языках программирования, QString можно изменять.
В нашем первом примере мы попробуем использовать несколько базовых методов класса QString. В этом нам поможет класс QTextStream, который предоставляет удобный интерфейс для чтения и записи текстовых данных:
Результат выполнения программы:
Обратите внимание, методы a.toUpper() и a.toLower() не модифицируют исходную строку, а работают с её копией.
А в следующей строке мы создаем объект (вы можете назвать его как хотите) out класса QTextStream, чтобы связать его со стандартным выводом ( stdout ) и иметь возможность использовать функционал класса QTextStream — выполнять вывод на экран:
Инициализация строк
Класс QString позволяет инициализировать строки разными способами. Ниже представлен пример с 5-ю различными вариантами инициализации:
Результат выполнения программы:
Инициализация №3: Инициализация строки с помощью средств Cтандартной библиотеки C++. Метод c_str() генерирует строку C-style. Данный массив символов, который является классическим способом представления строк в языке Си, может быть присвоен объекту класса QString:
Инициализация №5: А это строка в языке Cи, которая является массивом символов. Один из конструкторов класса QString может принимать массив символов в качестве параметра:
Доступ к элементам строки
Объект класса QString представляет собой последовательность QChar-«символов» (я специально взял в кавычки слово «символы»). Доступ к элементам строки можно получить c помощью оператора индексации [] или метода at(). В следующем примере мы будем выводить отдельные символы строки, которая является объектом класса QString:
Результат выполнения программы:
Примечание: Убедитесь, что при использовании метода at() ваш индекс не выходит за границы массива.
Длина строк
Есть 3 метода, которые позволяют получить информацию о длине строки:
Все они делают одно и то же — возвращают количество символов в строке. В следующем примере мы выводим длину четырех строк:
Результат выполнения программы:
Построение строк
Результат выполнения программы:
Подстроки
При работе со строками вам может понадобиться выделить подстроку из исходной строки. Справиться с данной задачей помогут методы left(), right() и mid():
Результат выполнения программы:
Класс QStringRef является версией «только для чтения» класса QString. Первым параметром мы указываем исходную строку, вторым — начальную позицию, третьим — длину подстроки:
Циклы и строки
Объекты класса QString состоят из элементов типа QChar. При этом мы можем использовать циклы для доступа к каждому элементу строки. Мы рассмотрим 3 варианта работы с элементами объектов класса QString:
Результат выполнения программы:
Способ №1: Ключевое слово foreach является расширением языка C++ средствами Qt. Первый параметр — это один символ строки, а второй — строка, которую мы будем перебирать посимвольно:
Способ №2: Использование итераторов:
Способ №3: Используем цикл for, где с помощью метода size() получаем допустимые границы перебора, а с помощью метода at() — доступ к символам строки:
Сравнение строк
Статический метод QString::compare() используется для сравнения двух строк и возвращает целочисленное значение.
Под словом «меньше» подразумевается, что в таблице символов выбранный символ одной строки предшествует соответствующему выбранному символу другой строки. Сами строки сравниваются следующим образом: сначала сравниваются первые символы двух строк — если они совпадают, то сравнивается следующая пара символов, и так до тех пор, пока не найдем отличающиеся символы или не переберем все символы до конца. С помощью метода compare() мы проведем 2 сравнения: учитывая и не учитывая регистр букв.











