# tkinter的控件可以通过bind函数绑定任何操作
# 方法1:给单一的组件绑定事件和函数
widget.bind(event,func)
# 方法2:给某一类组件绑定事件和函数(批量处理)
widget.bind_class(widget_name,event,func)
event 键盘和鼠标事件
通过widget.bind去绑定事件和widget的内置属性command相比两种绑定事件有什么区别???
command属性比较简单,不需要获取event对象
Button(root,text='举例子',command = func)
而bind 和bind_class是需要获取event对象的
例子:
from tkinter import *
root =Tk()
def callback(event):
#获取当前键盘按下的字符
print(event.widget)
frame = Frame(root, width=200, height=200)
#组件想要响应键盘事件,组件必须获得焦点,组件才会响应键盘来的消息。因为一个窗口可以有很多组件,键盘一次敲击不知道给哪个组件。
frame.bind("<Key>", callback)
#通过focus_set方法获得焦点。也可以设置Frame的takefocus选项为True,然后使用Tab将焦点转移上来
frame.focus_set()
frame.pack()
mainloop()