QRegularExpressionValidator Class
La classe QRegularExpressionValidator est utilisée pour vérifier une chaîne de caractères par rapport à une expression régulière. Plus d'informations...
| En-tête : | #include <QRegularExpressionValidator> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Héritages : | 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 |
Emplacements 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 d'entrée est Acceptable, Intermediate, ou Invalid. La regexp peut être fournie lors de la construction de QRegularExpressionValidator ou ultérieurement.
Si la regexp correspond partiellement à la chaîne, le résultat est considéré comme Intermediate. Par exemple, "" et "A" sont Intermediate pour la regexp [A-Z][0-9] (alors que "_" serait Invalid).
QRegularExpressionValidator enveloppe automatiquement l'expression régulière dans les ancres \\A et \\z; en d'autres termes, il tente toujours d'effectuer une correspondance exacte.
Exemples 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. Dans la pratique, ils sont normalement 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 Intermediate
Voir é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).
Fonctions d'accès :
| QRegularExpression | regularExpression() const |
| void | setRegularExpression(const QRegularExpression &re) |
Signal du notificateur :
| void | regularExpressionChanged(const QRegularExpression &re) |
Fonction membre Documentation
[explicit] QRegularExpressionValidator::QRegularExpressionValidator(QObject *parent = nullptr)
Construit un validateur avec un objet parent qui accepte n'importe quelle chaîne (y compris une chaîne vide) comme valide.
[explicit] QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)
Construit un validateur avec un objet parent qui accepte toutes les chaînes de caractères qui correspondent à l'expression régulière re.
[virtual noexcept] QRegularExpressionValidator::~QRegularExpressionValidator()
Détruit 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 si la correspondance est partielle (c'est-à-dire qu'elle pourrait être valide si des caractères valides supplémentaires étaient ajoutés), et Invalid si input ne correspond pas.
Si input ne correspond pas, le paramètre pos est fixé à la longueur du paramètre input; sinon, il n'est pas modifié.
Par exemple, si l'expression régulière est \w\d\d (mot-caractère, chiffre, chiffre), "A57" correspond à Acceptable, "E5" à Intermediate et "+9" à Invalid.
Voir aussi 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.