Cpp int to qstring

Cpp int to qstring

Преобразование числа в строку

QString & QString::setNum(int n, int base = 10)

Sets the string to the printed value of n in the specified base, and returns a reference to the string.

The base is 10 by default and must be between 2 and 36. For bases other than 10, n is treated as an unsigned integer.

The formatting always uses QLocale::C, i.e., English/UnitedStates. To get a localized string representation of a number, use QLocale::toString() with the appropriate locale.

Преобразование строки в целое число

int QString::toInt(bool * ok = 0, int base = 10) const

Returns the string converted to an int using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with «0x», base 16 is used; if the string begins with «0», base 8 is used; otherwise, base 10 is used.

The string conversion will always happen in the ‘C’ locale. For locale dependent conversion use QLocale::toInt()

int hex = str.toInt(&ok, 16); // hex == 255, ok == true

int dec = str.toInt(&ok, 10); // dec == 0, ok == false

Преобразование строки в вещественное число

float QString::toFloat(bool * ok = 0) const

Returns the string converted to a float value.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true. Returns 0.0 if the conversion fails.

The string conversion will always happen in the ‘C’ locale. For locale dependent conversion use QLocale::toFloat()

str1.toFloat(); // returns 1234.56

str2.toFloat(&ok); // returns 0.0, sets ok to false

Преобразование строки в вещественное число двойной точности

double QString::toDouble(bool * ok = 0) const

Returns the string converted to a double value. Returns 0.0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

double val = str.toDouble(); // val == 1234.56

Various string formats for floating point numbers can be converted to double values:

d = QString( «1234.56e-02» ).toDouble(&ok); // ok == true, d == 12.3456

The string conversion will always happen in the ‘C’ locale. For locale dependent conversion use QLocale::toDouble()

Читайте также:  Base 64 encoding in java

d = QString( «1234,56» ).toDouble(&ok); // ok == false

d = QString( «1234.56» ).toDouble(&ok); // ok == true, d == 1234.56

For historic reasons, this function does not handle thousands group separators. If you need to convert such numbers, use QLocale::toDouble().

d = QString( «1,234,567.89» ).toDouble(&ok); // ok == false

d = QString( «1234567.89» ).toDouble(&ok); // ok == true

Вот как можно создать строку с числом с ведущими нулями:

Наименование right justified говорит о том, что само число будет сдвинуто ближе к правому краю, а дополнительные символы будут добавлены слева.

  • Заготовка виджета, *.cpp файл
  • Заготовка виджета, *.h файл
  • Qt как побороть вывод предупреждения о неиспользуемой переменной
  • Как получить индекс QModelIndex по номеру строки, столбца
  • Как выбрать элемент в виде так, как если бы по нему кликнули мышкой
  • Информация об отправителе сигнала
  • Слои и this, ошибки
  • Как настроить QSlider
  • C++ и Qt — Глобальные клавиши (hotkeys) в X11, Windows, MacOS
  • Вставка картинок в QTextEdit
  • QTextEdit — как очистить произвольный параграф
  • QTextEdit — как указать обтекание при вставке картинки
  • QTextEdit — как выяснить имена всех картинок, находящихся в тексте
  • Как из QVector сделать двумерный (многомерный) массив
  • Куда устанавливается Qt в различных дистрибутивах Linux
  • Qt4: Программирование моделей и представлений. Подробное объяснение на русском языке.
  • Программирование моделей в Qt — рекомендации по использованию, неочевидные моменты
  • Как в Qt сделать преобразование из QString в число int и обратно
  • Qt: преобразование строки в число и числа в строку
  • Беседы о Qt: Парадигма Model-View
  • Модели-Посредники в Qt
  • Qt: Как узнать все методы объекта во время выполнения программы
  • Как изменить стиль оформления в Qt? (Рецепты для Qt5)
  • Как вывести на экран окно с сообщением (пример)
  • Как запомнить геометрию главного окна
  • Как добавить свой тип в QVariant, и как добавить указатель на свой тип в QVariant
  • Qt: Сигналы и слоты (выдержка из документации Qt 4.x)
  • Qt: как преобразовать строку QString в unsigned char*
  • Qt: как преобразовать строку QString в std::string
  • Как перебрать все элементы QMap или QHash через foreach, получив ключ и значение
  • Как перебирать элементы QList через foreach
  • Как в Qt перебрать символы в строке через foreach
  • Архитектура Модель-Вид-Контроллер в Qt (Небольшой, но полный пример кода)
  • Поиск объектов в Qt по имени и типу
  • Как в Qt получить текущее время в формате UNIX TIMESTAMP
  • Qt: абсолютные экранные координаты виджета и их преобразование
  • Qt: как показать диалог или виджет в окне, чтобы он автоматически удалился при закрытии окна
  • Как в Qt создать кнопку QPushButton, чтобы она была шириной с текст
  • Контейнеры в Qt
  • Алгоритмы для работы с контейнерами в Qt и итераторы
  • Понимание работы функций qLowerBound() и qUpperBound() в Qt
  • Как правильно удалять элементы из QVector или из QList в момент обхода массива (списка)
  • Как добавить опции профилирования в Qt
  • Как сделать так, чтобы кнопки на форме нажимались по клавише Enter а не только по пробелу
  • Зачем нужен макрос Q_PROPERTY и как им пользоваться
  • Что в документации Qt означает «Inherited By:» и «Inherits:»
  • Как работать с QTemporaryFile
  • Как в Qt быстро получить текущее время в виде строки?
  • Как задать ширину кнопки QPushButton так, чтобы она вмещала только текст
  • Скорость выполнения операций для контейнеров QList, QLinkedList, QVector, QQueue, QStack
  • Как в QListView, QTableView или QTreeView отобразить галки (CheckBox) ?
  • Как в Qt в отладочном выводе вывести название текущего класса и метода
  • Пример загрузки дерева и пробегания подчиненных элементов QDomElement
  • Умные указатели в Qt: статья на русском языке от IBM Developer
  • Размышления об умных указателях в Qt от Андрея Боровского. Отличия QPointer и QScopedPointer
  • Почему в Qt не работает мигание окном при вызове QApplication::alert()
  • Как поместить указатель на объект в QMap, и затем работать с этим объектом, извлекая указатель из QMap
  • Правила создания виджетов в Qt: на стеке или динамически?
  • Как сделать «плавающий» виджет минимального размера
  • Что делать, если сообщения в консоли Qt появляются с задержкой
  • Пример подсистемы логирования в Qt с использованием qInstallMessageHandler()
  • Как в Qt быстро увеличить расстояние между строками для QListView, QTableView, QTreeView
  • Как правильно получить из QString строку const char *
Читайте также:  Cpp size of float

Источник

Как преобразовать int в QString?

Существует ли функция QString в качестве аргумента принимающая тип int и возвращающая его как QString ?

Ответы (2 шт):

Способ 1

int i = 42; QString s = QString::number(i); 

Способ 2

Вы можете использовать метод arg :

QString QString::arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const 

Способ 3

И если вы хотите использовать решение при объединении строк, забудьте об операторе + . Просто сделайте так:

// 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); 

Способ 4

QPoint point(5,1); QString str; QTextStream(&str)  

Предупреждение: у вас может возникнуть желание использовать sprintf() для воспроизведения операторов printf() в C–стиле, но я рекомендую использовать QTextStream или arg() , так как они поддерживают строки в формате Unicode .

Способ 5

Взгляните на QString::setNum() .

int i = 10; double d = 10.75; QString str; str.setNum(i); str.setNum(d); 

setNum() переопределяется множеством способов. См. Справочное описание класса QString .

Способ 6

Более того, для конвертации из различных форматов и в различные форматы вы можете воспользоваться QVariant . Для конвертации int в QString получим:

Для конвертации типа float в String или String в float :

QVariant(3.2).toString(); QVariant("5.2").toFloat(); 

casting a variable to a string type (приведение переменной к типу строки)

QString str = QString("%1").arg(x) 

Or formatted string (Или к форматированная строка)

QString str = QString("x1= %1 x2= %2").arg(x1).arg(x2) 

Источник

Как преобразовать int в QString?

Вот более интересный вопрос: есть ли более быстрый путь? Я столкнулся с проблемой, когда эта версия почти занимает больше времени, чем вся обработка потом .

Тогда вы, вероятно, захотите поработать с заранее выделенными буферами . но это звучит как отдельный вопрос.

И если вы хотите поместить его в строку в каком-то текстовом контексте, забудьте о + . Просто выполните:

// Qt 5 + C++11 auto i = 13; auto printable = QStringLiteral("My magic number is %1. That all!").arg(i); // Qt 5 int i = 13; QString printable = QStringLiteral("My magic number is %1. That all!").arg(i); // Qt 4 int i = 13; QString printable = QString::fromLatin1("My magic number is %1. That all!").arg(i); 

Поскольку вы упоминаете оператор + , будьте осторожны с целыми числами, так как он может очень хорошо работать, но внутренне, вызывается реализация operator+(const QString &s, char c) , и строка не будет содержать целое число как число, но его QChar::fromAscii(c) эквивалент

Поскольку вы упоминаете оператор +, вы можете это сделать, но понимаете, что происходит: QString p = s + QString :: number (1); Быть са QString работает отлично. Итак, в основном QString + QString - это нормально, QString + int - плохо .

Кроме того, чтобы преобразовать все, что вы хотите, вы можете использовать QVariant . Для int a QString вы получаете:

A float до a string или string до float:

QVariant(3.2).toString(); QVariant("5.2").toFloat(); 

Назовите меня сумасшедшим, но я бы больше использовал вопрос «Как преобразовать число в QString?», Это основной ответ для облегченных преобразований и другие ответы для специальных процедур.

QPoint point(5,1); QString str; QTextStream(&str)  

Предостережение: Возможно, у вас возникнет соблазн использовать средство sprintf() для имитации операторов C style printf() , но рекомендуется использовать QTextStream или arg() , поскольку они поддерживают Unicode string s.

Источник

Оцените статью