Описание класса QRegExpValidatorКласс QRegExpValidator используется для проверки соответствия строки регулярному выражению. Далее... #include <QRegExpValidator> Унаследован от: QValidator. Свойства
Открытые функции
Переопределённые открытые функции
Дополнительные унаследованные члены
Подробное описаниеКласс QRegExpValidator используется для проверки соответствия строки регулярному выражению. QRegExpValidator использует регулярные выражения, чтобы определить, является ли входная строка Acceptable, Intermediate или Invalid. Регулярное выражение может быть задано при создании QRegExpValidator или в более позднее время. Когда QRegExpValidator определяет, является ли строка Acceptable или нет, регулярное выражение обрабатывается, как будто оно начинается утверждением начала строки (^) и заканчивается утверждением конца строки ($); соответствует всей входной строке или от указанной позиции, если указанная позиция начала больше нуля. Если строка предваряет строку Acceptable, то она считается Intermediate. Например, "" и "A" являются Intermediate для регулярного выражения [A-Z][0-9] (тогда как "_" было бы Invalid). Для краткого введения в механизм регулярных выражений Qt смотрите QRegExp. Пример использования: // регулярное выражение: необязательный '-' с последующими цифрами в количестве от 1 до 3 QRegExp rx("-?\\d{1,3}"); QValidator *validator = new QRegExpValidator(rx, this); QLineEdit *edit = new QLineEdit(this); edit->setValidator(validator); Ниже мы приводим некоторые примеры валидаторов. На практике они обычно связываются с виджетом, как в примере выше. // целые числа от 1 до 9999 QRegExp rx("[1-9]\\d{0,3}"); // валидатор обрабатывает регулярное выражение как "^[1-9]\\d{0,3}$" QRegExpValidator v(rx, 0); QString s; int pos = 0; s = "0"; v.validate(s, pos); // возвращает Invalid s = "12345"; v.validate(s, pos); // возвращает Invalid s = "1"; v.validate(s, pos); // возвращает Acceptable rx.setPattern("\\S+"); // один или несколько пробельных символов v.setRegExp(rx); s = "myfile.txt"; v.validate(s, pos); // Возвращает Acceptable s = "my file.txt"; v.validate(s, pos); // Возвращает Invalid // A, B или C, затем ровно пять цифр и W, X, Y или Z rx.setPattern("[A-C]\\d{5}[W-Z]"); v.setRegExp(rx); s = "a12345Z"; v.validate(s, pos); // Возвращает Invalid s = "A12345Z"; v.validate(s, pos); // Возвращает Acceptable s = "B12"; v.validate(s, pos); // Возвращает Intermediate // соответствует большинству файлов 'readme' rx.setPattern("read\\S?me(\.(txt|asc|1st))?"); rx.setCaseSensitive(false); v.setRegExp(rx); s = "readme"; v.validate(s, pos); // Возвращает Acceptable s = "README.1ST"; v.validate(s, pos); // Возвращает Acceptable s = "read me.txt"; v.validate(s, pos); // Возвращает Invalid s = "readm"; v.validate(s, pos); // Возвращает Intermediate Смотрите также QRegExp, QIntValidator, QDoubleValidator и Пример "Settings Editor". Описание свойствregExp : QRegExpЭто свойство содержит регулярное выражение, используемое для проверки. По умолчанию это свойство содержит регулярное выражение с шаблоном .*, соответствующее любой строке. Функции доступа:
Описание функций-членовQRegExpValidator::QRegExpValidator ( QObject * parent = 0 )Создаёт валидатор с родительским объектом parent, признающий любую строку (включая пустую) как допустимую. QRegExpValidator::QRegExpValidator ( const QRegExp & rx, QObject * parent )Создаёт валидатор с родительским объектом parent, признающий все строки, которые соответствуют регулярному выражению rx. Соответствовать должна вся строка; например, если регулярное выражение [A-Fa-f0-9]+, то оно будет рассматриваться как ^[A-Fa-f0-9]+$. QRegExpValidator::~QRegExpValidator ()Уничтожает валидатор. QValidator::State QRegExpValidator::validate ( QString & input, int & pos ) const [virtual]Переопределено из QValidator::validate(). Возвращает Acceptable, если input соответствует регулярному выражению для этого валидатора, Intermediate, если имеется частичное соответствие (т.е. это могло бы быть действительным соответствием, если были бы добавлены дополнительные допустимые символы), и Invalid, если input не соответствует. В параметр pos устанавливается длина параметра input. Например, если регулярное выражение \w\d\d (символ слова, цифра, цифра), то "A57" является Acceptable, "E5" - Intermediate, а "+9" - Invalid. Смотрите также QRegExp::exactMatch(). |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |