鬼少 发表于 前天 22:29

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的位置, 是什么原因呢?

FishC 发表于 前天 22:29

你的问题是由于 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]
查看完整版本: bind绑定的事件为何不生效?