IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QValidator

La classe QValidator fournit la validation de champs de texte. Plus d'informations...

#include <QValidator>

Voir la position dans l'arbre des classes.

  

H�ritage

H�rite de QObject.

H�rit� par QDoubleValidator, QIntValidator et QRegExpValidator.

Description d�taill�e

La classe QValidator fournit la validation de champs de texte.

La classe elle-m�me est abstraite. Deux sous-classes, QIntValidator et QDoubleValidator, fournissent la v�rification de gammes num�riques. QRegExpValidator fournit la v�rification g�n�rale en utilisant les expressions r�guli�res.

Si les validateurs fournis ne vous suffisent pas, vous pouvez d�river votre propre sous-classe de QValidator. La classe a deux fonctions virtuelles : validate() et fixup().

La fonction validate() doit �tre impl�ment�e par toutes les sous-classes et retourner une des valeurs de l'�num�ration State (Invalid, Intermediate ou Acceptable) selon la validit� de l'argument (pour la d�finition de la sous-classe de validit�).

Ces trois �tats n�cessitent quelques explications. Une cha�ne de caract�res qui retourne Invalid est clairement invalide. L'�tat Intermediate est moins �vident : la notion de validit� est difficile � appliquer quand la cha�ne de caract�res est incompl�te (toujours en cours d'�dition). QValidator d�finit Intermediate comme la propri�t� d'une cha�ne de caract�res qui n'est pas manifestement invalide, mais pas non plus acceptable comme r�sultat final. L'�tat Acceptable signifique que la cha�ne est acceptable comme r�sultat final. On pourrait dire que toute cha�ne de caract�res qui est un dans l'�tat interm�diaire lors de l'entr�e d'une cha�ne de caract�res Acceptable est Intermediate.

Quelques exemples :

La fonction fixup() est fournie pour les validateurs qui peuvent rep�rer certaines des erreurs de l'utilisateur. L'impl�mentation par d�faut est vide. Un QLineEdit, par exemple, appellera fixup() si l'utilisateur presse Entr�e (ou Retour) et si le contenu est actuellement invalide. Cela permet � la fonction fixup() de transformer une cha�ne de caract�res Invalid en une cha�ne Acceptable.

Un validateur a un concept de localisation, d�fini avec setlocale(). Il est g�n�ralement utilis� pour analyser des donn�es localis�es. Par exemple, QIntValidator et QDoubleValidator l'utilise pour analyser les repr�sentations localis�es des nombres entiers et doubles.

QValidator est souvent utilis� avec QLineEdit, QSpinBox et QComboBox.

Voir aussi QIntValidator, QDoubleValidator, QRegExpValidator et l'exemple des lignes d'�dition.

Type

enum QValidator::State

Cette �num�ration d�finit les �tats qu'une cha�ne de caract�res valid�e peut avoir.

Constante Valeur Description
QValidator::Invalid 0 La cha�ne est clairement invalide.
QValidator::Intermediate 1 La cha�ne a une valeur interm�diaire plausible.
QValidator::Acceptable 2 La cha�ne est acceptable comme un r�sultat final, c'est-�-dire valide.

Fonctions membres

QValidator::QValidator ( QObject * parent = 0 )

Construit le validateur. Le param�tre parent est pass� au constructeur de QObject.

QValidator::~QValidator ()

D�truit le validateur, lib�re tout l'espace et autres ressources utilis�es.

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

Cette fonction tente de changer input pour �tre valide selon les r�gles du validateur. Elle ne doit pas aboutir � une cha�ne de caract�res valide : les appelants de cette fonction doivent la re-tester par la suite. La fonction ne fait rien par d�faut.

Les r�impl�mentations de cette fonction peuvent changer input m�me si elles ne produisent pas de cha�nes de caract�res valide. Par exemple, un validateur ISBN peut vouloir supprimer tous les caract�res except�s les nombres et  »- », m�me si le r�sultat n'est pas un ISBN valide ; un validateur de surnoms peut vouloir supprimer les espaces au d�but et � la fin de la cha�ne de caract�res, m�me si la cha�ne r�sultante n'est pas dans la liste des surnoms accept�s.

QLocale QValidator::locale () const

Retourne la localisation utilis�e pour le validateur. La localisation par d�faut est initialis�e � la m�me que QLocale().

Voir aussi setLocale() et QLocale::QLocale().

void QValidator::setLocale ( const QLocale & locale )

D�finit la localisation qui sera utilis�e par le validateur. � moins que setLocale ait �t� appel�e, le validateur va utiliser la localisation, par d�faut mise � QLocale::setDefault(). Si la localisation par d�faut n'a pas �t� d�finie, c'est la localisation du syst�me d'exploitation qui sera utilis�e.

Voir aussi locale() et QLocale::setDefault().

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

Cette fonction virtuelle retourne Invalid si input n'est pas valide selon les r�gles de ce validateur, Intermediate s'il est probable qu'avec un petit peu plus d'�dition, l'entr�e sera acceptable (par exemple, l'utilisateur tape � 4 � dans un widget qui accepte des entiers entre 10 et 99) et Acceptable si l'entr�e est valide.

Cette fonction peut changer les deux arguments input et pos (la position du curseur) si n�cessaire.

Remerciements

Merci � Adrien Dadouchi pour la traduction et � Jonathan Courtois, Thibaut Cuvelier et � Jacques Thery pour leur relecture !

Cette page est une traduction d'une page de la documentation de Qt, �crite par Nokia Corporation and/or its subsidiary(-ies). Les �ventuels probl�mes r�sultant d'une mauvaise traduction ne sont pas imputables � Nokia. Qt 4.7
Copyright © 2025 Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'� 3 ans de prison et jusqu'� 300 000 E de dommages et int�r�ts. Cette page est d�pos�e � la SACD.
Vous avez d�nich� une erreur ? Un bug ? Une redirection cass�e ? Ou tout autre probl�me, quel qu'il soit ? Ou bien vous d�sirez participer � ce projet de traduction ? N'h�sitez pas � nous contacter ou par MP !