如何在 tkinter 窗口上显示实时鼠标位置

我想知道是否有办法在 tkinter 窗口上继续显示实时鼠标位置。我知道如何找到鼠标坐标。

x, y = win32api.GetCursorPos()
mousecords = Label(self.root, text='x : ' + str(x) + ', y : ' + str(y))
mousecords.place(x=0, y=0)

但是我需要标签在鼠标移动时不断更新。帮助将不胜感激 谢谢!


慕莱坞森
浏览 391回答 2
2回答

慕容3067478

这只会在Label鼠标位于 tkinter 窗口内时更新:无需使用 win32api,tkinter 内置了它。我们可以将一个函数绑定到root的<Motion>键上,并使用给定的位置参数event来检索鼠标的坐标。from tkinter import Tk, Labelroot = Tk()label = Label(root)label.pack()root.bind("<Motion>", lambda event: label.configure(text=f"{event.x}, {event.y}"))root.mainloop()

慕婉清6462132

您可以使用它after()来定期获取鼠标坐标并更新标签。下面是一个例子:import tkinter as tkimport win32apiroot = tk.Tk()mousecords = tk.Label(root)mousecords.place(x=0, y=0)def show_mouse_pos():&nbsp; &nbsp; x, y = win32api.GetCursorPos()&nbsp; &nbsp; #x, y = mousecords.winfo_pointerxy() # you can also use tkinter to get the mouse coords&nbsp; &nbsp; mousecords.config(text=f'x : {x}, y : {y}')&nbsp; &nbsp; mousecords.after(50, show_mouse_pos) # call again 50ms latershow_mouse_pos() # start the update taskroot.mainloop()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python