Python3实现带界面的鼠标位置获取工具
本文介绍如何使用Python3结合pyautogui和tkinter库,开发一个带有图形界面的鼠标位置获取工具。通过简单的代码实现,用户可以在指定延迟后获取当前鼠标的坐标位置,并在界面中显示结果。
实现原理与准备工作
该工具的核心逻辑是利用 pyautogui 库获取鼠标当前的屏幕坐标,并通过 tkinter 构建一个简单的图形用户界面(GUI)来展示结果。为了实现“延迟获取”的功能,程序会在用户点击按钮后等待指定时间,然后记录此时的鼠标位置。
在开始编写代码之前,需要确保环境中已安装必要的依赖库。可以通过以下命令安装 pyautogui:
pip install pyautogui
基础版本实现
基础版本实现了一个简单的界面,包含一个标签、一个输入框和一个按钮。点击按钮后,程序会等待2秒,然后获取鼠标位置并显示在输入框中。
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import time
import pyautogui as pag
import tkinter
def get():
po.delete(0,tkinter.END)
time.sleep(2) #几秒后返回位置
x , y = pag.position()
po.insert(0,str(x)+','+str(y))
root = tkinter.Tk()
tip = tkinter.Label(root,text="返回点击获取2s后的光标位置")
tip.grid(row=0)
po = tkinter.Entry(root)
po.grid(row=1)
do = tkinter.Button(root,text="获取",command=get) #点击获取位置
do.grid(row=2)
root.mainloop()代码解析
- 导入库:使用
time模块实现延迟,pyautogui用于获取鼠标位置,tkinter用于构建GUI。 - 获取位置函数:
get()函数首先清空输入框,然后等待2秒,接着调用pag.position()获取鼠标坐标,并将结果插入输入框。 - 界面布局:使用
grid管理器进行简单的行列布局,包含标签、输入框和按钮。
进阶版本:支持自定义延迟与输入验证
进阶版本允许用户自定义延迟时间,并增加了输入合法性检查,确保用户输入的是有效的数字。
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import time
import pyautogui as pag
import tkinter
mytime = 2
#判断时间是否合法
def safe():
text = getmytime.get();
#小数点个数
point = 0
if(text==""):
return False
for i in text:
if(i>='0' and i<='9'and point<2):
continue
elif(i=='.'):
point = point + 1
else:
return False
return True
def get():
global mytime
if(safe()):
mytime = float(getmytime.get())
#不知道为何下面的这个if没用
if(mytime>7.0):
showpos.delete(0,tkinter.END)
showpos.insert(0,"请耐心等候")
time.sleep(mytime) #几秒后返回位置
x , y = pag.position()
showpos.delete(0,tkinter.END)
showpos.insert(0,str(x)+','+str(y))
else:
showpos.delete(0,tkinter.END)
showpos.insert(0,"输入非法哟~")
root = tkinter.Tk()
root.resizable(0,0)
tip1 = tkinter.Label(root,text="点击按钮获取")
tip1.place(relx=0.1,rely=0.1)
getmytime = tkinter.Entry(root,width=3)
getmytime.place(relx=0.6,rely=0.1)
getmytime.insert(0,str(mytime))
tip2 = tkinter.Label(root,text="s后的")
tip2.place(relx=0.8,rely=0.1)
tip3 = tkinter.Label(root,text="光标位置:")
tip3.place(relx=0.1,rely=0.3)
showpos = tkinter.Entry(root,width=10)
showpos.place(relx=0.5,rely=0.3)
do = tkinter.Button(root,text="按钮",command=get) #点击获取位置
do.place(relx=0.8,rely=0.6)
root.mainloop()进阶功能解析
- 输入验证:
safe()函数检查用户输入的延迟时间是否合法,只允许数字和一个小数点。 - 动态延迟:根据用户输入的时间,程序会等待相应的时间后获取鼠标位置。
- 界面优化:使用
place管理器进行更灵活的布局,并禁用了窗口大小调整。
总结
通过上述两个版本的实现,我们可以看到如何使用Python3和相关库来创建一个简单的鼠标位置获取工具。基础版本适合初学者理解基本逻辑,而进阶版本则提供了更多的灵活性和用户交互体验。
以上就是用python3 返回鼠标位置的实现方法(带界面)的详细内容,更多关于Python,pyautogui,tkinter,鼠标位置,GUI编程的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









