Spec-Zone.ru › Qt 5.12

Класс 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
  • 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

Spec-Zone.ru

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