我想跟踪我的鼠标位置并在一个小窗口中显示。 为此,我创建了这段代码:
#! /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中的一个事件来告诉我的脚本何时移动鼠标......
如何刷新鼠标位置?
答案 0 :(得分:2)
root.after
定期致电update
。strl = tk.StringVar()
和tk.Label(...,textvariable=strl)
允许标签文本更改。 strl.set()
以更改标签文字。screenroot
等于display.Display().screen().root
的默认值
到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()