web-dev-qa-db-fra.com

Comment créer un champ de saisie de mot de passe à l'aide de Tkinter

J'essaie de coder une fenêtre de connexion à l'aide de Tkinter mais je ne suis pas en mesure de masquer le texte du mot de passe au format astérisque. Cela signifie que la saisie du mot de passe est en texte brut, ce qui doit être évité. Une idée de comment faire?

37
Hick

Une recherche rapide sur Google a permis

widget = Entry(parent, show="*", width=15)

widget est le champ de texte, parent est le widget parent (une fenêtre, un cadre, etc.), show est le caractère à faire écho (c'est-à-dire le caractère affiché dans Entry) et width est la largeur du widget.

63

Si vous ne souhaitez pas créer un tout nouveau widget Entry, vous pouvez le faire:

myEntry.config(show="*");

Pour revenir à la normale, procédez comme suit:

myEntry.config(show="");

J'ai découvert cela en examinant la réponse précédente et en utilisant la fonction d'aide dans l'interpréteur Python (par exemple, aide (tkinter.Entry) après l'importation (en scannant la documentation là-bas). J'avoue que je viens de deviner pour savoir comment le rendre à nouveau normal.

21
Shule

Voici une petite application de démonstration extrêmement simple qui cache et récupère le mot de passe à l'aide de Tkinter.

#Python 3.4 (For 2.7 change tkinter to Tkinter)

from tkinter import * 

def show():
    p = password.get() #get password from entry
    print(p)


app = Tk()   
password = StringVar() #Password variable
passEntry = Entry(app, textvariable=password, show='*').pack() 
submit = Button(app, text='Show Console',command=show).pack()      
app.mainloop() 

J'espère que cela pourra aider!

7
喬治扎菲
widget-name = Entry(parent,show="*")

Vous pouvez également utiliser un symbole de puce:

bullet = "\u2022" #specifies bullet character
widget-name = Entry(parent,show=bullet)#shows the character bullet
7
Nathan Green