Класс QIntValidator
Класс QIntValidator предоставляет валидатор, который гарантирует, что строка содержит целое число в заданном диапазоне. Подробнее...
| Заголовок: | #include <QIntValidator> |
| qmake: | QT += gui |
| Создаётся из: | IntValidator |
| Наследуется от: | QValidator |
Свойства
- 1 свойство унаследовано от QObject
Открытые функции
| QIntValidator(QObject *parent = Q_NULLPTR) | |
| QIntValidator(int minimum, int maximum, QObject *parent = Q_NULLPTR) | |
| ~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 |
| virtual QValidator::State | validate(QString &input, int &pos) const |
- 4 открытые функции унаследованы от QValidator
- 31 открытые функции унаследованы от QObject
Дополнительные унаследованные члены
- 1 открытый слот унаследован от QObject
- 1 сигнал унаследован от QValidator
- 2 сигнала унаследованы от QObject
- 11 статические открытые члены унаследованы от 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 = Q_NULLPTR)
Конструктор валидатора с объектом parent, который принимает все целые числа.
QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = Q_NULLPTR)
Конструктор валидатора с объектом parent, который принимает целые числа от minimum до maximum включительно.
QIntValidator::~QIntValidator()
Деструктор валидатора.
[virtual] void QIntValidator::fixup(QString &input) const
Переопределённая функция QValidator::fixup().
[virtual] void QIntValidator::setRange(int bottom, int top)
Устанавливает диапазон валидатора, принимающего целые числа от bottom до top включительно.
[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/archives/qt-5.6/qintvalidator.html