Events 使用tkinter的Python事件绑定
伙计们,我对Python中的GUI是新手,我一直在尝试理解envents过程,这里是我的代码,我的意图是每当我按下“a”键时,它都会打印“按键按下”。但这对我来说不起作用Events 使用tkinter的Python事件绑定,events,binding,python-3.x,tkinter,key,Events,Binding,Python 3.x,Tkinter,Key,伙计们,我对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, hei
#!/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()
它不执行回调函数,因为程序的焦点在
Tk
元素上。如果将该行替换为root.bind(“a”,callback)
,它将按预期工作
问题在于,当您单击画布元素时,它不会像其他小部件一样接收焦点作为条目,因此只有在您调用第一个
canvas.focus\u set()时,它才会响应keydown事件
请注意,您还可以绑定
以执行焦点设置
,这将允许您在画布中单击,然后键入字符。