Класс QIntValidator
Класс QIntValidator предоставляет валидатор, который гарантирует, что строка содержит целое число в заданном диапазоне. Подробнее...
| Заголовок: | #include <QIntValidator> |
| qmake: | QT += gui |
| Наследует: | QValidator |
Свойства
- 1 свойство унаследовано от QObject
Открытые функции
| QIntValidator(QObject *parent = nullptr) | |
| QIntValidator(int minimum, int maximum, QObject *parent = nullptr) | |
| virtual | ~QIntValidator() |
| int | bottom() const |
| void | setBottom(int) |
| virtual void | setRange(int bottom, int top) |
| void | setTop(int) |
| int | top() const |
Переопределенные открытые функции
| virtual void | fixup(QString &input) const override |
| virtual QValidator::State | validate(QString &input, int &pos) const override |
- 4 открытые функции унаследованы от QValidator
- 31 открытые функции унаследованы от QObject
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов унаследованы от QObject
Дополнительные унаследованные члены
- 1 открытый слот унаследован от QObject
- 1 сигнал унаследован от QValidator
- 2 сигнала унаследованы от QObject
- 9 защищенные функции унаследованы от QObject
Подробное описание
Класс QIntValidator предоставляет валидатор, который гарантирует, что строка содержит целое число в заданном диапазоне.
Пример использования:
QValidator *validator = new QIntValidator(100, 999, this); QLineEdit *edit = new QLineEdit(this); // the edit lineedit will only accept integers between 100 and 999 edit->setValidator(validator);
Ниже приведены некоторые примеры валидаторов. На практике они обычно связаны с виджетом, как в примере выше.
QString str; int pos = 0; QIntValidator v(100, 900, this); str = "1"; v.validate(str, pos); // returns Intermediate str = "012"; v.validate(str, pos); // returns Intermediate str = "123"; v.validate(str, pos); // returns Acceptable str = "678"; v.validate(str, pos); // returns Acceptable str = "999"; v.validate(str, pos); // returns Intermediate str = "1234"; v.validate(str, pos); // returns Invalid str = "-123"; v.validate(str, pos); // returns Invalid str = "abc"; v.validate(str, pos); // returns Invalid str = "12cm"; v.validate(str, pos); // returns Invalid
Обратите внимание, что значение 999 возвращает Intermediate. Значения, состоящие из числа цифр, равного или меньшего максимального значения, считаются промежуточными. Это необходимо, потому что цифра, которая предотвращает попадание числа в диапазон, не обязательно является последней набранной цифрой. Это также означает, что промежуточное число может иметь ведущие нули.
Минимальное и максимальное значения устанавливаются в одном вызове с помощью setRange(), или индивидуально с помощью setBottom() и setTop().
QIntValidator использует свойство locale() для интерпретации числа. Например, в арабских локалях QIntValidator будет принимать арабские цифры.
Примечание: Набор QLocale::NumberOptions, установленный в locale(), также влияет на способ интерпретации числа. Например, так как QLocale::RejectGroupSeparator по умолчанию не установлен, валидатор будет принимать разделители групп. Поэтому рекомендуется использовать QLocale::toInt() для получения числового значения.
См. также QDoubleValidator, QRegExpValidator, QLocale::toInt() и Пример полей ввода.
Документация по свойствам
bottom : int
Это свойство содержит наименьшее допустимое значение валидатора.
По умолчанию значение этого свойства определяется из наименьшего доступного целого числа со знаком (обычно -2147483647).
Функции доступа:
| int | bottom() const |
| void | setBottom(int) |
См. также setRange().
top : int
Это свойство содержит наибольшее допустимое значение валидатора.
По умолчанию значение этого свойства определяется из наибольшего доступного целого числа со знаком (обычно 2147483647).
Функции доступа:
| int | top() const |
| void | setTop(int) |
См. также setRange().
Документация по членам-функциям
QIntValidator::QIntValidator(QObject *parent = nullptr)
Создает валидатор с объектом parent, который принимает все целые числа.
QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = nullptr)
Создает валидатор с объектом parent, который принимает целые числа от minimum до maximum включительно.
[virtual] QIntValidator::~QIntValidator()
Удаляет валидатор.
[override virtual] void QIntValidator::fixup(QString &input) const
Переопределено из QValidator::fixup().
[virtual] void QIntValidator::setRange(int bottom, int top)
Устанавливает диапазон валидатора, который принимает только целые числа между bottom и top включительно.
[override virtual] QValidator::State QIntValidator::validate(QString &input, int &pos) const
Переопределено из QValidator::validate().
Возвращает Acceptable, если input — целое число в допустимом диапазоне, Intermediate, если input — префикс целого числа в допустимом диапазоне, и Invalid в противном случае.
Если допустимый диапазон состоит только из положительных целых чисел (например, от 32 до 100) и input — отрицательное целое число, возвращается Invalid. (С другой стороны, если диапазон состоит из отрицательных целых чисел (например, от -100 до -32) и input — положительное целое число, возвращается Intermediate, потому что пользователь, возможно, собирается набрать минус (особенно для языков справа налево)).
int pos = 0; s = "abc"; v.validate(s, pos); // returns Invalid s = "5"; v.validate(s, pos); // returns Intermediate s = "50"; v.validate(s, pos); // returns Acceptable
По умолчанию параметр pos не используется этим валидатором.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qintvalidator.html