Spec-Zone.ru › Qt 6.0

Класс QIntValidator

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

Заголовок: #include <QIntValidator>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Наследует: QValidator
  • Список всех членов, включая наследуемые

Свойства

  • bottom : int
  • top : int

Открытые функции

QIntValidator(int minimum, int maximum, QObject *parent = nullptr)
QIntValidator(QObject *parent = nullptr)
virtual ~QIntValidator()
int bottom() const
void setBottom(int)
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

Сигналы

void bottomChanged(int bottom)
void topChanged(int top)

Подробное описание

Пример использования:

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, QRegularExpressionValidator, QLocale::toInt() и Пример полей ввода.

Документация по свойствам

bottom : int

Это свойство содержит наименьшее приемлемое значение валидатора

По умолчанию значение этого свойства выводится из наименьшего доступного целого числа со знаком (обычно -2147483647).

Функции доступа:

int bottom() const
void setBottom(int)

Сигнал уведомления:

void bottomChanged(int bottom)

См. также setRange().

top : int

Это свойство содержит наибольшее приемлемое значение валидатора

По умолчанию значение этого свойства выводится из наибольшего доступного целого числа со знаком (обычно 2147483647).

Функции доступа:

int top() const
void setTop(int)

Сигнал уведомления:

void topChanged(int top)

См. также setRange().

Документация по функциям-членам

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

Конструирует валидатор с parent, который принимает целые числа от minimum до maximum включительно.

QIntValidator::QIntValidator(QObject *parent = nullptr)

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

[virtual] QIntValidator::~QIntValidator()

Уничтожает валидатор.

[override virtual] void QIntValidator::fixup(QString &input) const

Переопределяет: QValidator::fixup(QString &input) const.

void QIntValidator::setRange(int bottom, int top)

Устанавливает диапазон валидатора так, чтобы принимались только целые числа между bottom и top включительно.

[override virtual] QValidator::State QIntValidator::validate(QString &input, int &pos) const

Переопределяет: QValidator::validate(QString &input, int &pos) const.

Возвращает Acceptable, если input является целым числом в допустимом диапазоне. Если input имеет не более цифр, чем верхняя граница диапазона, или является префиксом целого числа в допустимом диапазоне, возвращает Intermediate. В противном случае возвращает Invalid.

Если допустимый диапазон состоит только из положительных целых чисел (например, от 32 до 100) и input является отрицательным целым числом, то возвращается Invalid. (С другой стороны, если диапазон состоит из отрицательных целых чисел (например, от -100 до -32) и input является положительным целым числом, то возвращается Intermediate, так как пользователь может только что набрать знак минус, особенно для языков с письмом справа налево).

Аналогично, если допустимый диапазон находится между 46 и 53, то 41 и 59 будут оценены как Intermediate, так как в противном случае пользователь не сможет изменить значение с 49 на 51.

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-6.0/qintvalidator.html

Spec-Zone.ru

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