bind绑定的事件为何不生效?
from tkinter import *
root = Tk()
def callback(event):
print('点击位置',event.x,event.y)
frame = Frame(root,width=200,height=200,bg='white')
frame.bind('<Any-Key>',callback)
frame.pack()
mainloop()
执行上概述代码, 按键盘任意键, 发现并没有显示x和y的位置, 是什么原因呢?
你的问题是由于 frame.bind('', callback) 中的事件绑定字符串有误。要捕获按键事件,应该使用 '<Key>' 事件。下面是修正后的代码:
from tkinter import *
root = Tk()
def callback(event):
print('点击位置', event.x, event.y)
frame = Frame(root, width=200, height=200, bg='white')
frame.bind('<Key>', callback)
frame.pack()
frame.focus_set()# 使frame获得键盘焦点
mainloop()
注意,在绑定完事件后,添加了 frame.focus_set() 来确保 frame 可以获得键盘输入焦点,这样才能捕获按键事件。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]