You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tkinter窗口中实时更新鼠标坐标值?

实时显示鼠标位置的Tkinter窗口实现

你的问题在于当前代码仅在程序启动时获取一次鼠标坐标,之后不会自动更新;而直接用while循环会阻塞Tkinter的事件循环(mainloop),导致窗口无法响应任何操作,自然看不到坐标更新。

正确的做法是利用Tkinter的after()方法,它可以在指定时间后调用指定函数,通过在函数内部再次调用after()来实现持续更新:

from tkinter import *
import pyautogui as pag

window = Tk() 
window.geometry("200x200")
window.title("Mouse Position Tracker")
window.config(background="#4ceefc")

label1 = Label(window, text="mouse coordinates:")
label1.place(x=20, y=50)
    
label2 = Label(window, text="")
label2.place(x=30, y=90)

def update_mouse_pos():
    # 获取最新鼠标位置
    coordinates = pag.position()
    # 更新标签文本,格式化显示更清晰
    label2.config(text=f"X: {coordinates[0]}, Y: {coordinates[1]}")
    # 每隔100毫秒(0.1秒)再次调用自己,实现持续更新
    window.after(100, update_mouse_pos)

# 启动更新循环
update_mouse_pos()

window.mainloop() 

关键说明:

  • after(delay_ms, function):让Tkinter在delay_ms毫秒后执行指定函数,不会阻塞事件循环
  • 在update_mouse_pos内部递归调用after(),就能持续获取并更新鼠标坐标
  • 调整100这个数值可以改变更新频率,数值越小更新越频繁(比如50就是0.05秒更新一次)

内容的提问来源于stack exchange,提问作者Patxi Tolonen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:20:36