Spec-Zone.ru › Qt 6.1

Класс QRegularExpressionValidator

Класс QRegularExpressionValidator используется для проверки строки на соответствие регулярному выражению. Подробнее...

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

Свойства

  • regularExpression : QRegularExpression

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

QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)
QRegularExpressionValidator(QObject *parent = nullptr)
virtual ~QRegularExpressionValidator()
QRegularExpression regularExpression() const

Переопределённые открытые функции

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

Открытые слоты

void setRegularExpression(const QRegularExpression &re)

Сигналы

void regularExpressionChanged(const QRegularExpression &re)

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

QRegularExpressionValidator использует регулярное выражение (regexp) для определения того, является ли входная строка Приемлемой, Промежуточной или Недействительной. Regexp может быть задан при создании QRegularExpressionValidator или впоследствии.

Если regexp частично совпадает с строкой, результат считается Промежуточным. Например, "" и "A" являются Промежуточными для regexp [A-Z][0-9] (в то время как "_" будет Недействительным).

QRegularExpressionValidator автоматически оборачивает регулярное выражение в якоря \\A и \\z; другими словами, он всегда пытается выполнить точное совпадение.

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

// regexp: optional '-' followed by between 1 and 3 digits
QRegularExpression rx("-?\\d{1,3}");
QValidator *validator = new QRegularExpressionValidator(rx, this);

QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);

Ниже приведены некоторые примеры валидаторов. На практике они обычно ассоциируются с виджетом, как и в примере выше.

// integers 1 to 9999
QRegularExpression re("[1-9]\\d{0,3}");
// the validator treats the regexp as "^[1-9]\\d{0,3}$"
QRegularExpressionValidator v(re, 0);
QString s;
int pos = 0;

s = "0";     v.validate(s, pos);    // returns Invalid
s = "12345"; v.validate(s, pos);    // returns Invalid
s = "1";     v.validate(s, pos);    // returns Acceptable

re.setPattern("\\S+");            // one or more non-whitespace characters
v.setRegularExpression(re);
s = "myfile.txt";  v.validate(s, pos); // Returns Acceptable
s = "my file.txt"; v.validate(s, pos); // Returns Invalid

// A, B or C followed by exactly five digits followed by W, X, Y or Z
re.setPattern("[A-C]\\d{5}[W-Z]");
v.setRegularExpression(re);
s = "a12345Z"; v.validate(s, pos);        // Returns Invalid
s = "A12345Z"; v.validate(s, pos);        // Returns Acceptable
s = "B12";     v.validate(s, pos);        // Returns Intermediate

// match most 'readme' files
re.setPattern("read\\S?me(\\.(txt|asc|1st))?");
re.setPatternOptions(QRegularExpression::CaseInsensitiveOption);
v.setRegularExpression(re);
s = "readme";      v.validate(s, pos); // Returns Acceptable
s = "README.1ST";  v.validate(s, pos); // Returns Acceptable
s = "read me.txt"; v.validate(s, pos); // Returns Invalid
s = "readm";       v.validate(s, pos); // Returns Intermediate

См. такжеQRegularExpression, QIntValidator и QDoubleValidator.

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

regularExpression : QRegularExpression

Это свойство хранит регулярное выражение, используемое для валидации.

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

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

QRegularExpression regularExpression() const
void setRegularExpression(const QRegularExpression &re)

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

void regularExpressionChanged(const QRegularExpression &re)

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

QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)

Конструирует валидатор с объектом parent, который принимает все строки, соответствующие регулярному выражению re.

QRegularExpressionValidator::QRegularExpressionValidator(QObject *parent = nullptr)

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

[virtual] QRegularExpressionValidator::~QRegularExpressionValidator()

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

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

Реализует: QValidator::validate(QString &input, int &pos) const.

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

В случае, если input не соответствует, параметр pos устанавливается в длину параметра input; в противном случае он не изменяется.

Например, если регулярное выражение \w\d\d (символ слова, цифра, цифра), то "A57" — Приемлемый, "E5" — Промежуточный, а "+9" — Недействительный.

См. такжеQRegularExpression::match().

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

Spec-Zone.ru

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