所以,我不熟悉Python中的GUI,我一直在努力理解envents过程,这是我的代码,并且每当我按下'a'键时它应该打印出“按下按键”的意图。但是它对我不起作用。
#!/usr/bin/env python3
# -*-coding:UTF-8 -*
from tkinter import *
root = Tk()
def callback(event):
print("key pressed")
canvas = Canvas(root, width=100, height=100, bg='blue')
canvas.bind("a", callback)
canvas.pack()
root.mainloop()
答案 0 :(得分:5)
它不执行回调函数,因为程序的焦点在Tk
元素上。如果用root.bind("a", callback)
替换该行,它将按预期工作。
问题是当你点击它时,canvas元素没有像其他小部件一样点击它作为Entry,所以如果你先调用canvas.focus_set()
,它只会响应keydown事件。