Spec-Zone.ru › Qt 5.11

Класс QIntValidator

Класс QIntValidator предоставляет валидатор, который гарантирует, что строка содержит целое число в заданном диапазоне. Подробнее...

Заголовок: #include <QIntValidator>
qmake: QT += gui
Наследуется от: QValidator
  • Список всех членов, включая унаследованные члены

Свойства

  • bottom : int
  • top : int
  • 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
  • 34 публичных функции унаследованы от QObject

Дополнительные унаследованные члены

  • 1 публичный слот унаследован от QObject
  • 1 сигнал унаследован от QValidator
  • 2 сигнала унаследованы от QObject
  • 1 публичная переменная унаследована от QObject
  • 10 статических публичных членов унаследованы от QObject
  • 9 защищённых функций унаследованы от QObject
  • 2 защищённых переменных унаследованы от 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)

Конструктор валидатора с объектом-родителем, который принимает все целые числа.

QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = nullptr)

Конструктор валидатора с объектом-родителем, принимающим целые числа от 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/archives/qt-5.11/qintvalidator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API