gpt4 book ai didi

python - 用 python 显示鼠标位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:09 24 4
gpt4 key购买 nike

我想跟踪我的鼠标位置并将其显示在一个小窗口中。为此,我创建了这段代码:

#! /usr/bin/python

from Tkinter import *
from Xlib import display

def mousepos():
data = display.Display().screen().root.query_pointer()._data
return data["root_x"], data["root_y"]

root = Tk()
strl = "mouse at {0}".format(mousepos())
lab = Label(root,text=strl)
lab.pack()
root.title("Mouseposition")

root.mainloop()

这个小脚本会在启动时显示鼠标位置,但不会在鼠标移动时刷新它。我不支持它(我说过我是 python 的新手吗?)。我想我必须使用 Xlib 中的一个事件来告诉我的脚本何时移动鼠标...

如何刷新我的鼠标位置?

最佳答案

  1. 使用root.after 定期调用update
  2. 使用 strl = tk.StringVar()tk.Label(...,textvariable=strl) 来允许更改标签文本。
  3. 调用 strl.set() 更改标签文本。
  4. 添加了等于 display.Display().screen().rootscreenroot 默认值到 mousepos 这样一长串函数调用中的大部分都是不会在每次调用 mousepos 时重复。调用不带任何参数的 mousepos() 将继续照常工作。

import Tkinter as tk
import Xlib.display as display

def mousepos(screenroot=display.Display().screen().root):
pointer = screenroot.query_pointer()
data = pointer._data
return data["root_x"], data["root_y"]

def update():
strl.set("mouse at {0}".format(mousepos()))
root.after(100, update)

root = tk.Tk()
strl = tk.StringVar()
lab = tk.Label(root,textvariable=strl)
lab.pack()
root.after(100, update)
root.title("Mouseposition")
root.mainloop()

关于python - 用 python 显示鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8041389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com