Sur cette page

QIntValidator Class

La classe QIntValidator fournit un validateur qui garantit qu'une chaîne contient un entier valide dans une plage spécifiée. Plus d'informations...

En-tête : #include <QIntValidator>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Héritages : QValidator

Propriétés

Fonctions publiques

QIntValidator(QObject *parent = nullptr)
QIntValidator(int minimum, int maximum, QObject *parent = nullptr)
virtual ~QIntValidator()
int bottom() const
void setBottom(int)
void setRange(int bottom, int top)
void setTop(int)
int top() const

Fonctions publiques réimplémentées

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

Signaux

void bottomChanged(int bottom)
void topChanged(int top)

Description détaillée

Exemples d'utilisation :

QValidator *validator = new QIntValidator(100, 999, this);
QLineEdit *edit = new QLineEdit(this);

// the edit lineedit will only accept integers between 100 and 999
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.

QString str;
int pos = 0;
QIntValidator v(100, 900, this);

str = "1";
v.validate(str, pos);     // returns Intermediate
str = "012";
v.validate(str, pos);     // returns Intermediate

str = "123";
v.validate(str, pos);     // returns Acceptable
str = "678";
v.validate(str, pos);     // returns Acceptable

str = "999";
v.validate(str, pos);    // returns Intermediate

str = "1234";
v.validate(str, pos);     // returns Invalid
str = "-123";
v.validate(str, pos);     // returns Invalid
str = "abc";
v.validate(str, pos);     // returns Invalid
str = "12cm";
v.validate(str, pos);     // returns Invalid

Notez que la valeur 999 renvoie une valeur intermédiaire. Les valeurs composées d'un nombre de chiffres égal ou inférieur à la valeur maximale sont considérées comme intermédiaires. Cela s'explique par le fait que le chiffre qui empêche un nombre d'être dans la plage n'est pas nécessairement le dernier chiffre tapé. Cela signifie également qu'un nombre intermédiaire peut comporter des zéros initiaux.

Les valeurs minimales et maximales sont définies en un seul appel avec setRange(), ou individuellement avec setBottom() et setTop().

QIntValidator utilise sa fonction locale() pour interpréter le nombre. Par exemple, dans les régions arabes, QIntValidator acceptera les chiffres arabes.

Remarque : les paramètres QLocale::NumberOptions définis sur locale() affectent également la manière dont le nombre est interprété. Par exemple, comme QLocale::RejectGroupSeparator n'est pas défini par défaut, le validateur acceptera les séparateurs de groupes. Il est donc recommandé d'utiliser QLocale::toInt() pour obtenir la valeur numérique.

Voir aussi QDoubleValidator, QRegularExpressionValidator, QLocale::toInt(), et l'exemple d'édition de ligne.

Documentation sur les propriétés

bottom : int

Cette propriété contient la plus petite valeur acceptable du validateur

Par défaut, la valeur de cette propriété est dérivée de l'entier signé le plus bas disponible (-2147483648).

Fonctions d'accès :

int bottom() const
void setBottom(int)

Signal du notificateur :

void bottomChanged(int bottom)

Voir aussi setRange().

top : int

Cette propriété contient la valeur acceptable la plus élevée du validateur

Par défaut, la valeur de cette propriété est dérivée de l'entier signé le plus élevé disponible (2147483647).

Fonctions d'accès :

int top() const
void setTop(int)

Notifier signal :

void topChanged(int top)

Voir aussi setRange().

Documentation des fonctions membres

[explicit] QIntValidator::QIntValidator(QObject *parent = nullptr)

Construit un validateur avec un objet parent qui accepte tous les entiers.

QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = nullptr)

Construit un validateur avec parent, qui accepte les nombres entiers de minimum à maximum inclus.

[virtual noexcept] QIntValidator::~QIntValidator()

Détruit le validateur.

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

Réimplémente : QValidator::fixup(QString &input) const.

void QIntValidator::setRange(int bottom, int top)

Définit la plage du validateur pour qu'il n'accepte que les nombres entiers compris entre bottom et top inclus.

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

Réimplémente : QValidator::validate(QString &input, int &pos) const.

Renvoie Acceptable si input est un entier dans la plage valide. Si input a au plus autant de chiffres que le haut de la plage, ou est un préfixe d'un entier dans la plage valide, renvoie Intermediate. Sinon, il renvoie Invalid.

Si la plage valide est constituée uniquement d'entiers positifs (par exemple, de 32 à 100) et que input est un entier négatif, le système renvoie Invalid. (En revanche, si l'intervalle est constitué d'entiers négatifs (par exemple, -100 à -32) et que input est un entier positif sans signe plus en tête, Intermediate est renvoyé, car l'utilisateur peut être sur le point de taper le moins (en particulier pour les langues qui s'écrivent de droite à gauche).

De même, si la plage valide est comprise entre 46 et 53, 41 et 59 seront évalués comme Intermediate, car sinon l'utilisateur ne pourrait pas modifier une valeur comprise entre 49 et 51.

int pos = 0;

s = "abc";
v.validate(s, pos);    // returns Invalid

s = "5";
v.validate(s, pos);    // returns Intermediate

s = "50";
v.validate(s, pos);    // returns Acceptable

Par défaut, le paramètre pos n'est pas utilisé par ce validateur.

© 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.