欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tkinter的事件绑定

程序员文章站 2022-05-28 22:25:53
...

Tkinter提供一个强大的机制可以让你*地处理事件,对于每个组件来说,可以通过bind()方法将函数或者方法绑定到具体的事件上,当被触发的事件满足该事件绑定的事件时,Tkinter就会带着事件描述去调用handler()方法。

例子一:捕获鼠标单击时的位置

# 捕获点击鼠标的位置
from tkinter import *

root = Tk()

def callback(event):
    print("点击位置:", event.x, event.y)

frame = Frame(root, width=200, height=200)
frame.bind("<Button-1>", callback)
frame.pack()

mainloop()

Tkinter的事件绑定

使用Frame组件的bind()方法将鼠标单击事件<Button-1>和自定义的callback()方法绑定起来。

例子二:捕获键盘事件

# 捕获键盘事件
from tkinter import *

root = Tk()

def callback(event):
    print("敲击位置:", repr(event.char))

frame = Frame(root, width=200, height=200)
frame.bind("<Key>", callback)
frame.focus_set()
frame.pack()

mainloop()

Tkinter的事件绑定

只有当组件获得焦点的时候才能接收键盘事件Key,使用focus_set()获得焦点。

例子三:捕获鼠标在组件上的运动轨迹

from tkinter import *

root = Tk()

def callback(event):
    print("当前位置:", event.x, event.y)

frame = Frame(root, width=200, height=200)
frame.bind("<Motion>", callback)
frame.pack()

mainloop()

Tkinter的事件绑定

这里需要关注的是<Motion事件>

相关标签: tkinter