Python3实现带界面的鼠标位置获取工具

Nora
Nora
发布时间:2026-10-12| 6人浏览过
原创

本文介绍如何使用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编程的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。