QLineEdit - Masquer le nombre de caractères d'un mot de passe
Bonsoir à tous
Je viens vers vous dans l'espoir d'une solution à un problème de saisie de mot de passe. En effet j'aimerais non seulement masquer le mot de passe saisi (ok je mets le setEchoMode sur QLineEdit::Password) mais il reste quand-même le fait que cela affiche autant d'étoiles que de caractères tapés.
Or moi, j'aimerais bien masquer aussi ce nombre. Soit en remplissant le champ d'étoiles, soit (comme sous certains environnements login sous Linux) remplacer chaque caractère par 3 étoiles (si on tape vite celui qui regarde n'a pas le temps de compter).
J'ai bien pensé à connecter l'état textChanged() sur un slot qui complèterait le reste avec des étoiles mais je sens qu'il devrait y avoir une solution plus simple (surtout qu'il serait ensuite difficile de faire la distinction entre "ce qu'a entré l'utilisateur" et "ce qui a été artificiellement rempli par le slot)
Donc si quelqu'un avait cette solution...
En vous remerciant de m'avoir lu avec la bienveillance habituelle qui transparait dans la grande majorité de ce forum...
mot de passe avec trois ***
Imagine un contrôle [entree] par lequel on mémorise sur l'évènement touche relâchée le keycode mais dans lequel on ne rempli que des "***" à chaque fois.
A chaque appui de touche, on mémorise le keycode dans un autre contrôle caché [Sortie]
A l'appui sur return (keycode=13), on test si la valeur du contrôle [sortie] est bien le code attendu.
Code:
1 2 3 4 5 6 7 8 9 10 11
| Private Sub entree_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 Then Forms!Formulaire1.entree = Empty: Forms!Formulaire1.[sortie] = Empty: GoTo suite
If KeyCode = 13 Then GoTo test
Forms!Formulaire1.entree = Forms!Formulaire1.entree & "***"
Forms!Formulaire1.[sortie] = Forms!Formulaire1.[sortie] & " " & KeyCode
GoTo suite
test:
' tester si le contrôle sortie est égal à l attente
suite:
End Sub |
Mon soucis est que je ne sais pas ressortir le caractère correspondant au keycode ! :roll:
Il va falloir fignoler cette idée ...