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 "&é~\"#'{([-|è`_\ç^à@)]=}azertyuiop¨$£¤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); }j'attend impatiement votre message. merci
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 "&é~\"#'{([-|è`_\ç^à@)]=}azertyuiop¨$£¤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(); } } } }
Partager