Класс QDoubleValidator
Класс QDoubleValidator обеспечивает проверку диапазона для чисел с плавающей точкой. Подробнее...
| Заголовок: | #include <QDoubleValidator> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследуется от: | QValidator |
Открытые типы
| перечисление | Notation { СтандартнаяНотация, НаучнаяНотация } |
Свойства
Открытые функции
| QDoubleValidator(double bottom, double top, int decimals, QObject *parent = nullptr) | |
| QDoubleValidator(QObject *parent = nullptr) | |
| виртуальный | ~QDoubleValidator() |
| double | bottom() const |
| int | decimals() const |
| QDoubleValidator::Notation | notation() const |
| void | setBottom(double) |
| void | setDecimals(int) |
| void | setNotation(QDoubleValidator::Notation) |
| void | setRange(double minimum, double maximum, int decimals = 0) |
| void | setTop(double) |
| double | top() const |
Переопределенные открытые функции
| виртуальный QValidator::State | validate(QString &input, int &pos) const override |
Сигналы
| void | bottomChanged(double bottom) |
| void | decimalsChanged(int decimals) |
| void | notationChanged(QDoubleValidator::Notation notation) |
| void | topChanged(double top) |
Подробное описание
QDoubleValidator предоставляет верхнюю и нижнюю границы, а также ограничение на количество цифр после десятичной точки. Он не предоставляет функцию fixup().
Вы можете установить допустимый диапазон одним вызовом setRange() или с помощью setBottom() и setTop(). Установите количество десятичных знаков с помощью setDecimals(). Функция validate() возвращает состояние валидации.
QDoubleValidator использует свой locale() для интерпретации числа. Например, в немецком локали "1,234" будет принято как дробное число 1.234. В арабских локали QDoubleValidator будет принимать арабские цифры.
Примечание: QLocale::NumberOptions, установленные на locale(), также влияют на способ интерпретации числа. Например, поскольку QLocale::RejectGroupSeparator по умолчанию не установлен, валидатор будет принимать разделители групп. Поэтому рекомендуется использовать QLocale::toDouble() для получения числового значения.
См. также QIntValidator, QRegularExpressionValidator, QLocale::toDouble() и Пример Line Edits.
Документация по типам членов
перечисление QDoubleValidator::Notation
Это перечисление определяет разрешённые нотации для ввода двойного значения.
| Константа | Значение | Описание |
|---|---|---|
QDoubleValidator::StandardNotation |
0 |
Строка записана как стандартное число (например, 0,015). |
QDoubleValidator::ScientificNotation |
1 |
Строка записана в научной форме. Она может иметь показатель степени (например, 1,5E-2). |
Документация свойств
bottom : double
Это свойство содержит минимальное допустимое значение валидатора
По умолчанию это свойство содержит значение -бесконечность.
Функции доступа:
| double | bottom() const |
| void | setBottom(double) |
Сигнал уведомления:
| void | bottomChanged(double bottom) |
См. также setRange().
decimals : int
Это свойство содержит максимальное количество цифр после десятичной точки валидатора
По умолчанию это свойство содержит значение 1000.
Функции доступа:
| int | decimals() const |
| void | setDecimals(int) |
Сигнал уведомления:
| void | decimalsChanged(int decimals) |
См. также setRange().
notation : Notation
Это свойство содержит нотацию, описывающую число в строке
По умолчанию это свойство установлено в ScientificNotation.
Функции доступа:
| QDoubleValidator::Notation | notation() const |
| void | setNotation(QDoubleValidator::Notation) |
Сигнал уведомления:
| void | notationChanged(QDoubleValidator::Notation notation) |
См. также Notation.
top : double
Это свойство содержит максимальное допустимое значение валидатора
По умолчанию это свойство содержит значение бесконечности.
Функции доступа:
| double | top() const |
| void | setTop(double) |
Сигнал уведомления:
| void | topChanged(double top) |
См. также setRange().
Документация функций членов
QDoubleValidator::QDoubleValidator(double bottom, double top, int decimals, QObject *parent = nullptr)
Создаёт объект валидатора с объектом parent. Этот валидатор будет принимать числа с плавающей точкой от bottom до top включительно, с максимальным количеством decimals знаков после запятой.
QDoubleValidator::QDoubleValidator(QObject *parent = nullptr)
Создаёт объект валидатора с объектом parent, который принимает любое число с плавающей точкой.
[virtual] QDoubleValidator::~QDoubleValidator()
Удаляет валидатор.
void QDoubleValidator::setRange(double minimum, double maximum, int decimals = 0)
Устанавливает валидатор для принятия чисел с плавающей точкой от minimum до maximum включительно, с максимальным количеством decimals знаков после запятой.
[override virtual] QValidator::State QDoubleValidator::validate(QString &input, int &pos) const
Переопределяет: QValidator::validate(QString &input, int &pos) const.
Возвращает Acceptable, если строка input содержит число с плавающей точкой, которое находится в допустимом диапазоне и имеет правильный формат.
Возвращает Intermediate, если input содержит число с плавающей точкой, которое выходит за пределы диапазона или имеет неправильный формат; например, пустое значение.
Возвращает Invalid, если input не является числом с плавающей точкой или содержит слишком много знаков после запятой.
Примечание: Если допустимый диапазон состоит только из положительных чисел с плавающей точкой (например, от 0,0 до 100,0) и input является отрицательным числом, то возвращается Invalid. Если notation() установлено в StandardNotation, и входная строка содержит больше цифр перед запятой, чем может содержать число с плавающей точкой в допустимом диапазоне, возвращается Invalid. Если notation() равно ScientificNotation, и входная строка не находится в допустимом диапазоне, возвращается Intermediate. Значение может стать допустимым при изменении показателя степени.
По умолчанию параметр pos не используется этим валидатором.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qdoublevalidator.html