2010-03-10 2 views
26

Я пытаюсь закодировать окно входа в систему с помощью Tkinter, но я не могу скрыть текст пароля в формате звездочки. Это означает, что ввод пароля - это простой текст, которого следует избегать. Есть идеи, как это сделать?Как создать поле ввода пароля с помощью Tkinter

ответ

44

Быстрый поиск Google дал этого

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

где widget является текстовым полем, parent является родительским виджетом (окно, рамка, что угодно), show является характер эха (то есть характер показано в Entry), а width - ширина виджета.

16

Если вы не хотите, чтобы создать новый виджет ввода, вы можете сделать это:

myEntry.config(show="*"); 

Чтобы сделать его обратно в нормальное русло, сделать это:

myEntry.config(show=""); 

я обнаружил это, рассмотрев предыдущий ответ и используя вспомогательную функцию в интерпретаторе Python (например, help (tkinter.Entry) после импорта (от сканирования документации там). Я признаю, что просто догадался, как сделать это нормальным снова.

3
widget-name = Entry(parent,show="*") 

Вы также можете использовать символ маркера:

bullet = "\u2022" #specifies bullet character 
widget-name = Entry(parent,show=bullet)#shows the character bullet 
+0

Это не сработало для меня; не уверен, что я делаю неправильно, или если он просто не работает –

2

Вот небольшой, очень простой демо-приложение скрытие и извлечение пароля с помощью 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() 

Надеюсь, что это поможет!

Смежные вопросы