Я строю программу-симулятор на окне Python 3 Tkinter. Прогресс теперь прерывается из-за ошибки в программе ввода, которую я создаю сам.
Неработающий код, над которым я сейчас работаю:
import string
import tkinter as tk
text = "awdd"
doIt=True
def key_event(label, event):
global doIt, text
text = w.itemcget(label,"text")
if doIt==False:
return 1
if event.keysym == "BackSpace":
w.itemconfig(label, text=text[:-1])
elif event.keysym == 'space':
w.itemconfig(label, text=text + ' ' )
elif event.keysym == "Return":
doIt=False
password=text
print ('PASSWORD:%s' % (password))
print ('PROGRAM STOPPED')
elif event.char in string.ascii_lowercase:
# Character is an ASCII letter
w.itemconfig(label, text = text + event.char)
def main():
root = tk.Tk()
w = tk.Canvas(root, width=200, height=100)
w.pack()
label = w.create_text(1,0, text=text, fill= 'green', anchor='nw', font=
('courier',13))
w.tag_bind(label,"<Key>", lambda e: key_event(label,e))
root.update()
# See side note 2
root.mainloop()
main()
Таким образом, программа будет проверять ввод от пользователя, пока doIt == True . Но когда я запускаю программу, функция key_event () вообще ничего не делает! Есть предложения?
Заранее спасибо!