在Python Tkinter中获取鼠标位置
在Tkinter中获取鼠标位置是非常简单的事情,我们只需要调用winfo_pointerxy()
函数即可获得鼠标在窗口中的位置坐标。
from tkinter import *
root = Tk()
def print_pos(event):
x, y = event.widget.winfo_pointerxy()
print("鼠标位置:x=", x, " y=", y)
root.bind('<Motion>', print_pos)
root.mainloop()
在窗口中移动鼠标,我们就可以通过print_pos()
函数实时输出鼠标在窗口中的位置坐标。
我们也可以在创建时设置鼠标移动事件,以实现类似电子表盘中指针的移动效果。
from tkinter import *
root = Tk()
canvas = Canvas(root, width=300, height=300)
canvas.pack()
def pointer_move(event):
x, y = event.widget.winfo_pointerxy()
angle = (450 - x) % 360
r = 100
canvas.delete("pointer")
canvas.create_line(150, 150, 150 + r * cos(angle * pi / 180), 150 - r * sin(angle * pi / 180), fill='red', width=5, tags="pointer")
root.bind('<Motion>', pointer_move)
root.mainloop()
在这个示例中,鼠标水平移动时,我们通过计算指针所指的角度,并绘制一条红色线来不断更新指针的位置。
结论
在Python Tkinter中获取鼠标位置,只需要调用winfo_pointerxy()
函数即可获得鼠标在窗口中的位置坐标。我们可以基于此实现更多有趣的应用场景。