使用`pyautogui`和`tkinter` 获取鼠标光标的位置

这段代码是一个简单的Python程序,使用`pyautogui`和`tkinter`库创建了一个窗口应用程序,用于获取鼠标光标的位置。

让我们逐行解释代码的功能:

1. `#!/usr/bin/python3`:这是一个Shebang行,用于指定脚本使用的解释器。

2. `# -*- coding: UTF-8 -*-`:这是一个编码声明,指定脚本使用UTF-8编码。

3. `import time`:导入`time`模块,用于实现延时功能。

4. `import pyautogui as pag`:导入`pyautogui`库,并使用别名`pag`来引用。

5. `import tkinter`:导入`tkinter`库,用于创建窗口应用程序。

6. `def get():`:定义了一个名为`get`的函数,用于获取鼠标光标的位置。

7. `po.delete(0,tkinter.END)`:清空文本框中的内容。

8. `time.sleep(1)`:程序暂停1秒,等待获取光标位置。

9. `x, y = pag.position()`:使用`pyautogui`的`position()`方法获取当前鼠标光标的位置,并将其赋值给变量`x`和`y`。

10. `po.insert(0, str(x) + ',' + str(y))`:将获取到的光标位置插入到文本框中。

11. `win = tkinter.Tk()`:创建一个`Tkinter`窗口对象。

12. `win.title("鼠标坐标")`:设置窗口的标题为"鼠标坐标"。

13. `w = win.winfo_screenwidth()`和`h = win.winfo_screenheight()`:获取屏幕的宽度和高度。

14. `win.geometry("%dx%d+%d+%d" %(180,80,(w-180)/2,(h-80)/2))`:设置窗口的大小为180x80,并将窗口居中显示在屏幕上。

15. `tip = tkinter.Label(win,text="返回点击获取1秒后的光标位置")`:创建一个标签对象,用于显示提示信息。

16. `tip.grid(row=0)`:将提示标签放置在窗口中的第一行。

17. `po = tkinter.Entry(win)`:创建一个文本框对象,用于显示光标位置。

18. `po.grid(row=1)`:将文本框放置在窗口中的第二行。

19. `do = tkinter.Button(win,text="获取",command=get)`:创建一个按钮对象,用于触发获取光标位置的功能。

20. `do.grid(row=2)`:将按钮放置在窗口中的第三行。

21. `win.mainloop()`:进入`Tkinter`的主循环,监听并响应窗口事件,保持窗口显示。

当运行这段代码时,将显示一个窗口应用程序,窗口中有一个标签显示提示信息,一个文本框用于显示光标位置,以及一个按钮用于触发获取光标位置的功能。当点击按钮时,程序会延时1秒后获取光标位置,并将其显示在文本框中。窗口会一直显示,直到手动关闭窗口。

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
 
import time
import pyautogui as pag
import tkinter
 
def get():
    po.delete(0,tkinter.END)
    time.sleep(1) #几秒后返回位置
    x , y = pag.position()
    po.insert(0,str(x)+','+str(y))
 
win = tkinter.Tk()
win.title("鼠标坐标")
w = win.winfo_screenwidth()
h = win.winfo_screenheight()
win.geometry("%dx%d+%d+%d" %(180,80,(w-180)/2,(h-80)/2))#窗口居中、窗口大小180*80
tip = tkinter.Label(win,text="返回点击获取1秒后的光标位置")
tip.grid(row=0)
po = tkinter.Entry(win)
po.grid(row=1)
do = tkinter.Button(win,text="获取",command=get) #点击获取位置
do.grid(row=2)
 
win.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云-激光雷达-Slam-三维牙齿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值