我借用了我在本网站上找到的another thread代码,但当我试图围绕它编写一个程序时,我发现它只能使用一次。重复的代码不起作用。
import tkinter as tk
def keyDetect(event):
root.destroy()
if event.char == event.keysym:
print(event.char)
elif len(event.char) == 1:
print(event.keysym, event.char)
else:
print(event.keysym)
root = tk.Tk()
root.bind_all('<Key>', keyDetect)
root.withdraw()
root.mainloop()
print('1')
root = tk.Tk()
root.bind_all('<Key>', keyDetect)
print('2')
root.withdraw()
print('3')
root.mainloop()
print('4')
使用上面的4张照片显示问题所在,"3"
已打印但"4"
不是。
答案 0 :(得分:2)
调用Tk.mainloop()
启动Tkinter的主要事件循环。这是一个无限循环,一直持续到主窗口被销毁(关闭)。因此,在循环退出之前,您的程序不会执行root.mainloop()
之后的任何行。
类比将是:
print('3')
while True:
pass
print('4')
但请注意,Tkinter的循环不仅仅是pass
。它正在处理事件,保持主窗口打开等等。