QRegularExpressionValidator Class
La classe `QRegularExpressionValidator` permet de vérifier la conformité d'une chaîne de caractères à une expression régulière. En savoir plus...
| En-tête : | #include <QRegularExpressionValidator> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Hérite de : | QValidator |
Propriétés
- regularExpression : QRegularExpression
Fonctions publiques
| QRegularExpressionValidator(QObject *parent = nullptr) | |
| QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr) | |
| virtual | ~QRegularExpressionValidator() |
| QRegularExpression | regularExpression() const |
Fonctions publiques réimplémentées
| virtual QValidator::State | validate(QString &input, int &pos) const override |
Slots publics
| void | setRegularExpression(const QRegularExpression &re) |
Signaux
| void | regularExpressionChanged(const QRegularExpression &re) |
Description détaillée
QRegularExpressionValidator utilise une expression régulière (regexp) pour déterminer si une chaîne de caractères est Acceptable, Intermediate ou Invalid. L'expression régulière peut être fournie soit lors de la création de QRegularExpressionValidator, soit ultérieurement.
Si l'expression régulière correspond partiellement à la chaîne, le résultat est considéré comme « Intermediate ». Par exemple, « » et « A » sont « Intermediate » pour l'expression régulière [A-Z][0-9] (alors que « _ » serait « Invalid »).
QRegularExpressionValidator encadre automatiquement l’expression régulière entre les ancres « \\A » et « \\z » ; en d’autres termes, il tente toujours d’effectuer une correspondance exacte.
Exemple d’utilisation :
// 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);Nous présentons ci-dessous quelques exemples de validateurs. En pratique, ils sont généralement associés à un widget, comme dans l’exemple ci-dessus.
// 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 IntermediateVoir également QRegularExpression, QIntValidator et QDoubleValidator.
Documentation sur les propriétés
regularExpression : QRegularExpression
Cette propriété contient l'expression régulière utilisée pour la validation
Par défaut, cette propriété contient une expression régulière avec un motif vide (qui correspond donc à n'importe quelle chaîne de caractères).
Fonctions d'accès :
| QRegularExpression | regularExpression() const |
| void | setRegularExpression(const QRegularExpression &re) |
Signal de notification :
| void | regularExpressionChanged(const QRegularExpression &re) |
Documentation des fonctions membres
[explicit] QRegularExpressionValidator::QRegularExpressionValidator(QObject *parent = nullptr)
Crée un validateur à partir d'un objet ` parent ` qui considère toute chaîne de caractères (y compris une chaîne vide) comme valide.
[explicit] QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)
Crée un validateur à partir d'un objet ` parent ` qui accepte toutes les chaînes de caractères correspondant à l'expression régulière re.
[virtual noexcept] QRegularExpressionValidator::~QRegularExpressionValidator()
Supprime le validateur.
[override virtual] QValidator::State QRegularExpressionValidator::validate(QString &input, int &pos) const
Réimplémente : QValidator::validate(QString &input, int &pos) const.
Renvoie ` Acceptable ` si ` input ` correspond à l’expression régulière de ce validateur, ` Intermediate ` s’il y a une correspondance partielle (c’est-à-dire que la correspondance pourrait être valide si des caractères valides supplémentaires étaient ajoutés), et ` Invalid ` si ` input ` ne correspond pas.
Si l’ input n’est pas validée, le paramètre pos est défini sur la longueur du paramètre input; dans le cas contraire, il n’est pas modifié.
Par exemple, si l’expression régulière est \w\d\d (caractère alphabétique, chiffre, chiffre), alors « A57 » correspond à Acceptable, « E5 » à Intermediate et « +9 » à Invalid.
Voir également QRegularExpression::match().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.