IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Contrôle de la saisie de l'utilisateur dans un QLineEdit


Sujet :

Qt

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Contrôle de la saisie de l'utilisateur dans un QLineEdit
    Bonjour à tous
    Je suis un débutant dans la création d’applications en C++ avec Qt5. Actuellement je suis en train de coder une application où j’ai besoin de contrôler la saisi de l’utilisateur dans un « lineEdit » j’aimerai que celui si n’affiche que les caractères que veut en utilisant une règle d’expression.
    Par exemple si je ne veux pas que le caractère « & » s’affiche dans le « lineEdit » j’aimerai que le curseur ne bouge pas.
    J’ai essayé deux codes ; l’un a presque marché mais lors de la saisie des caractères interdit le curseur fait des espaces au lieu de rester à la même position. L’autre code m’affiche une erreur (je cite: This application has requested the Runtime to terminate it in an unusual way. Please contact the application’s support team for more information) et arrête complètement le programme lorsque j’entre un caractère interdit. Voici les deux codes sussessif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #define CARACTERE_SPECIAUX "&é~\"#'{([-|è`_\ç^à@)]=}aze€rtyuiop¨$£¤qsdfghjklmù%*µ<>wxcvbn,?;.:/!§+"
     
    void Dialog::on_nom_textChanged(const QString &arg1)
    {
        QString texto = arg1;
           QString caracteres_etranges(CARACTERE_ETRANGES);
           for(int i = 0; i < texto.size(); ++i)
               foreach(const QChar &y, caracteres_etranges)
                   if(texto.at(i) == y){
                       texto[i] = '\0';
                       ui->nom->backspace();
                    }
           ui->nom->setText(texto);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    #define CARACTERE_SPECIAUX "&é~\"#'{([-|è`_\ç^à@)]=}aze€rtyuiop¨$£¤qsdfghjklmù%*µ<>wxcvbn,?;.:/!§+"
     
    void Widget::on_numero_textEdited()
    {
     
           QString caracteres_speciaux(CARACTERE_SPECIAUX);
           for(int i = 0; i < ui->numero->text().size(); ++i){
               foreach(const QChar &y, caracteres_speciaux){
     
                   if(/*texto.at(i) == y*/ ui->numero->text().at(i) == y){                 
                       ui->numero->backspace();
                    }
               }
           }
     
    }
    j'attend impatiement votre message. merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    sans
    Inscrit en
    Janvier 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Janvier 2017
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    ma réponse de débutant

    on tape le texte dans une QlineEdit et on veut pas voir tes caractheres spéciaux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    connect(taQlineEdit,SIGNAL(textEdited(QString)),this,SLOT(control(QString)));
     
    void FenPrincipale::control(QString p){
        QString caractereSpeciaux = "&é~\"#'{([-|è`_\ç^à@)]=}aze€rtyuiop¨$£¤qsdfghjklmù%*µ<>wxcvbn,?;.:/!§+";
        for(int i = 0; i < caractereSpeciaux.length(); i++){
            p.replace( caractereSpeciaux.at(i),"");
        }
        taQlineEdit->setText(p);
    }
    solution de débutant

    fernand

Discussions similaires

  1. [PHP 5.4] Insérer des valeurs saisies par l'utilisateur dans une requête SQL
    Par B.Berthod dans le forum Langage
    Réponses: 1
    Dernier message: 22/01/2015, 09h28
  2. Réponses: 2
    Dernier message: 22/07/2011, 15h44
  3. Contrôle sur la saisie d'un utilisateur dans un formulaire
    Par rsvincef1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/11/2010, 17h27
  4. Réponses: 2
    Dernier message: 26/12/2006, 17h33
  5. [C#] Vérification de la saisie utilisateur dans un DataGridView
    Par Jinroh77 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/09/2006, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo