Spec-Zone.ru › Qt 5.12

Класс QValidator

Класс QValidator обеспечивает валидацию входного текста. Подробнее...

Заголовок: #include <QValidator>
qmake: QT += gui
Наследует: QObject
Наследуется от:

QDoubleValidator, QIntValidator, QRegExpValidator и QRegularExpressionValidator

  • Список всех членов, включая наследуемые
  • Устаревшие члены

Типы публичного доступа

Перечисление State { Недействительное, Промежуточное, Приемлемое }

Функции публичного доступа

QValidator(QObject *parent = nullptr)
виртуальный ~QValidator()
виртуальный void fixup(QString &input) const
QLocale locale() const
void setLocale(const QLocale &locale)
виртуальный QValidator::State validate(QString &input, int &pos) const = 0
  • 31 функция публичного доступа унаследована от QObject

Сигналы

void changed()
  • 2 сигнала унаследованы от QObject

Статические члены публичного доступа

const QMetaObject staticMetaObject
  • 9 статических членов публичного доступа унаследованы от QObject

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

  • 1 свойство унаследовано от QObject
  • 1 публичный слот унаследован от QObject
  • 9 защищенные функции унаследованы от QObject

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

Класс QValidator обеспечивает валидацию входного текста.

Сам класс является абстрактным. Два подкласса, QIntValidator и QDoubleValidator, обеспечивают базовые проверки диапазона числовых значений, а QRegExpValidator — общие проверки с использованием пользовательского регулярного выражения.

Если встроенные валидаторы недостаточны, вы можете создать подкласс QValidator. Класс имеет две виртуальные функции: validate() и fixup().

validate() должна быть реализована каждым подклассом. Она возвращает Недействительное, Промежуточное или Приемлемое в зависимости от того, является ли её аргумент допустимым (по определению подкласса).

Эти три состояния требуют некоторого объяснения. Строка Недействительное очевидно недействительна. Промежуточное менее очевидно: концепция допустимости трудно применима, когда строка неполная (ещё редактируется). QValidator определяет Промежуточное как свойство строки, которая не является явно недействительной и не приемлемой в качестве конечного результата. Приемлемое означает, что строка приемлема в качестве конечного результата. Можно сказать, что любая строка, которая является правдоподобным промежуточным состоянием во время ввода строки Приемлемое, является Промежуточным.

Вот несколько примеров:

  • Для поля ввода, принимающего целые числа от 10 до 1000 включительно, 42 и 123 являются Приемлемыми, пустая строка и 5 являются Промежуточными, а «asdf» и 1114 являются Недействительными.
  • Для редактируемого выпадающего списка, принимающего URL-адреса, любой правильно сформированный URL-адрес является Приемлемым, «http://example.com/» является Промежуточным (это может быть действие вырезания и вставки, которое случайно добавило запятую в конце), пустая строка является Промежуточным (пользователь может выделить и удалить весь текст в подготовке к вводу нового URL-адреса), а «http:///./» является Недействительным.
  • Для поля ввода спина, принимающего длины, «11см» и «1дюйм» являются Приемлемыми, «11» и пустая строка являются Промежуточными, а «http://example.com» и «час» являются Недействительными.

fixup() предоставляется для валидаторов, которые могут исправить некоторые ошибки пользователя. По умолчанию реализация ничего не делает. QLineEdit, например, вызовет fixup() если пользователь нажмёт Enter (или Возврат) и содержимое в данный момент недействительно. Это позволяет функции fixup() произвести некоторую магию, чтобы сделать строку Недействительное Приемлемой.

Валидатор имеет локаль, устанавливаемую с помощью setLocale(). Обычно она используется для анализа данных, локализованных на определённый язык. Например, QIntValidator и QDoubleValidator используют её для анализа локализованных представлений целых и вещественных чисел.

QValidator обычно используется с QLineEdit, QSpinBox и QComboBox.

См. также QIntValidator, QDoubleValidator, QRegExpValidator и Пример полей ввода.

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

enum QValidator::State

Это перечисление определяет состояния, в которых может находиться валидируемая строка.

Константа Значение Описание
QValidator::Invalid 0 Строка очевидно недействительна.
QValidator::Intermediate 1 Строка — правдоподобное промежуточное значение.
QValidator::Acceptable 2 Строка приемлема в качестве конечного результата; т. е. она действительна.

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

QValidator::QValidator(QObject *parent = nullptr)

Настраивает валидатор. Параметр parent передаётся конструктору QObject.

[virtual] QValidator::~QValidator()

Удаляет валидатор, освобождая используемую память и другие ресурсы.

[signal] void QValidator::changed()

Этот сигнал генерируется, когда меняется любое свойство, которое может повлиять на действительность строки.

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

Эта функция пытается изменить input на действительное значение согласно правилам валидации. Это может не привести к действительной строке: вызывающие функции должны повторно проверить результат; по умолчанию ничего не делает.

Реализации этой функции могут изменять input даже если результат не будет действительной строкой. Например, валидатор ISBN может захотеть удалить все символы, кроме цифр и «-», даже если результат по-прежнему не является действительным ISBN; валидатор фамилий может захотеть удалить пробелы в начале и конце строки, даже если результирующая строка не находится в списке допустимых фамилий.

QLocale QValidator::locale() const

Возвращает локаль валидатора. Локаль по умолчанию инициализируется такой же, как QLocale().

См. также setLocale() и QLocale::QLocale().

void QValidator::setLocale(const QLocale &locale)

Устанавливает locale, которая будет использоваться для валидатора. Если setLocale не вызывался, валидатор будет использовать локаль по умолчанию, заданную с помощью QLocale::setDefault(). Если локаль по умолчанию не задана, она определяется операционной системой.

См. также locale() и QLocale::setDefault().

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

Эта виртуальная функция возвращает Недействительное, если входные данные недействительны в соответствии с правилами этого валидатора, Промежуточное, если есть вероятность, что небольшая правка сделает входные данные приемлемыми (например, пользователь вводит «4» в виджет, который принимает целые числа от 10 до 99), и Приемлемое, если входные данные действительны.

Функция может изменять как входные данные, так и позицию курсора (позицию курсора), если это необходимо.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qvalidator.html

Spec-Zone.ru

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