python实现鼠标实时坐标监测

news2024/9/20 5:30:58

python实现鼠标实时坐标监测

一、说明

使用了以下技术和库:

  1. tkinter:用于创建GUI界面。
  2. pyperclip:用于复制文本到剪贴板。
  3. pynput.mouse:用于监听鼠标事件,包括移动和点击。
  4. threading:用于创建多线程,以便在后台执行鼠标事件监听和标签更新的任务。
  5. time:用于控制线程休眠,以定时更新标签文本。

二、代码

# coding=gbk  # 指定文件编码为GBK
import tkinter as tk  # 导入tkinter库,用于创建GUI界面
import pyperclip  # 导入pyperclip库,用于复制文本到剪贴板
from pynput import mouse  # 导入pynput库的mouse模块,用于监听鼠标事件
import threading  # 导入threading库,用于创建多线程
import time  # 导入time库,用于线程休眠

# 创建一个MouseCoordinateApp类,用于处理鼠标坐标显示和复制
class MouseCoordinateApp:
    def __init__(self):
        self.root = tk.Tk()  # 创建一个Tkinter窗口
        self.root.title("鼠标坐标实时展示")  # 设置窗口标题
        self.root.geometry("350x80")  # 设置窗口大小
        self.root.resizable(False, False)  # 禁止窗口大小调整
        self.label = tk.Label(self.root, text="单机截取坐标:X: - , Y: -\n实时坐标:X: - , Y: -")  # 创建一个标签控件
        self.label.pack()  # 将标签控件添加到窗口
        copy_button = tk.Button(self.root, text="复制坐标", command=self.copy_coordinates)  # 创建一个按钮控件
        copy_button.pack()  # 将按钮控件添加到窗口
        self.root.attributes("-topmost", True)  # 设置窗口置顶
        self.extracted_coordinates = (0, 0)  # 初始化截取坐标
        self.current_coordinates = (0, 0)  # 初始化实时坐标
        self.last_extracted_coordinates = (0, 0)  # 初始化上一次截取的坐标
        self.update_interval = 0.1  # 更新标签的时间间隔
        threading.Thread(target=self.start_mouse_listener, daemon=True).start()  # 创建并启动鼠标事件监听的线程
        threading.Thread(target=self.update_label_thread, daemon=True).start()  # 创建并启动标签更新的线程

    def copy_coordinates(self):
        x, y = self.last_extracted_coordinates  # 获取上一次截取的坐标
        coordinates = f"X: {x}, Y: {y}"  # 格式化坐标文本
        pyperclip.copy(coordinates)  # 复制坐标文本到剪贴板
        self.label.config(text=f"已复制坐标:{coordinates}")  # 更新标签文本

    def start_mouse_listener(self):
        with mouse.Listener(on_move=self.on_move, on_click=self.on_click) as listener:
            listener.join()  # 启动鼠标事件监听

    def on_move(self, x, y):
        self.current_coordinates = (x, y)  # 更新实时坐标

    def on_click(self, x, y, button, pressed):
        if pressed:
            self.last_extracted_coordinates = self.extracted_coordinates  # 更新上一次截取的坐标
            self.extracted_coordinates = (x, y)  # 如果鼠标被按下,更新截取坐标

    def update_label_thread(self):
        while True:
            time.sleep(self.update_interval)  # 线程休眠一段时间
            self.update_label()  # 更新标签文本

    def update_label(self):
        extracted_x, extracted_y = self.extracted_coordinates  # 获取截取坐标
        current_x, current_y = self.current_coordinates  # 获取实时坐标
        self.label.config(text=f"截取坐标:X: {extracted_x}, Y: {extracted_y}\n实时坐标:X: {current_x}, Y: {current_y}")

    def run(self):
        self.root.mainloop()  # 启动主程序的主循环

if __name__ == "__main__":
    app = MouseCoordinateApp()  # 创建MouseCoordinateApp实例
    app.run()  # 启动应用程序的主循环

三、效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1238682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基本的弹层,点击弹出

<div class"role"><el-button type"primary" size"mini" click"showDialog true">添加角色</el-button></div><!--控制弹框的显示隐藏visible .sync可以点击X关闭弹框 --> <el-dialog width"…

怎么提高拍摄视频画质和清晰度?这几个方法一定要学会

一、提高拍摄视频画质和清晰度 1、分辨率 分辨率就是我们常说的480P、720P、1080P、4K等等&#xff0c;分辨率越大&#xff0c;在某种程度上视频也就越清晰。虽然原理是这样的&#xff0c;但在不同平台上传视频也会影响最终的画质。 比如超高分辨率的视频不适合在某音。因为…

Electronica上海 Samtec 验证演示 | FireFly™Micro Flyover System™

摘要/前言 在圆满结束的2023慕尼黑上海电子展上&#xff0c;Samtec虎家团队为观众带来了前所未有的丰富体验&#xff1a;产品展示、采访、Demo演示、抽奖互动~ 尤其是Demo演示&#xff0c;虎家工程师FAE Marcus为大家带来了数个精彩的产品与系统讲解演示。其中更不乏合作伙伴…

shell 条件语句

目录 测试 test测试文件的表达式 是否成立 格式 选项 比较整数数值 格式 选项 字符串比较 常用的测试操作符 格式 逻辑测试 格式 且 &#xff08;全真才为真&#xff09; 或 &#xff08;一真即为真&#xff09; 常见条件 双中括号 [[ expression ]] 用法 &…

shopee数据分析软件:了解市场趋势,分析竞争对手,优化运营策略

在当今数字化时代&#xff0c;数据已经成为了企业决策的重要依据。对于电商行业来说&#xff0c;数据更是至关重要。如果你想在电商领域中脱颖而出&#xff0c;那么你需要一款强大的数据分析工具来帮助你更好地了解市场、分析竞争对手、优化运营策略。而知虾数据软件就是这样一…

Windows + VS2022超详细点云库(PCL1.8.1)配置

本文在结合多位CSDN大佬的步骤&#xff0c;记录以下最全的点云配置过程&#xff0c;防止走弯路&#xff08;并在最后配上PCL环境配置成功的测试代码-彩色兔子&#xff09; 一、PCL介绍 PCL概述_pcl技术_一杯盐水的博客-CSDN博客 二、准备工作&#xff08;PCL版本的下载&…

Banana Pi BPI-R3 Mini 开源路由器,也能拍出艺术美感

香蕉派BPI-R3 Mini路由器板开发板采用联发科MT7986A(Filogic 830)四核ARM A53芯片设计&#xff0c;板载2G DDR 内存&#xff0c;8G eMMC和128MB SPI NAND存储&#xff0c;是一款非常高性能的开源路由器开发板&#xff0c;支持Wi-Fi6 2.4G/5G&#xff08;MT7976C&#xff09;&am…

网络知识学习(笔记二)

ios模型规定的网络模型一共有7层&#xff0c;但是实际使用过程中&#xff0c;4层的TCP/IP模型是经常使用的&#xff0c;网络知识学习笔记里面也是基于4层TCP/IP模型进行分析的&#xff0c;前面已经讲了&#xff1a;&#xff08;1&#xff09;物理层&#xff0c;&#xff08;2&a…

汇编语言学习笔记

汇编语言的不同种类 as86汇编&#xff1a;能产生16位代码的Intel 8086汇编 mov ax, cs //cs→ax&#xff0c;目标操作数在前GNU as汇编&#xff1a;产生32位代码&#xff0c;使用AT&T系统V语法 movl var&#xff0c; %eax // var→%eax&#xff0c;目标操作数在后内嵌汇编…

12、人工智能、机器学习、深度学习的关系

很多年前听一个机器学习的公开课,在Q&A环节,一个同学问了老师一个问题“机器学习和深度学习是什么关系”? 老师先没回答,而是反问了在场的同学,结果问了2-3个,没有人可以回答的很到位,我当时也是初学一脸懵,会场准备的小礼品也没有拿到。 后来老师解释“机器学习和…

dolphinscheduler有任务一直在运行(问题)目前对数据库解决

dolphinscheduler有任务一直在运行&#xff08;问题&#xff09;目前对数据库解决 危害&#xff1a; 这么多的任务没有结束&#xff0c;会涉及很多问题的&#xff0c;系统的数据盘会不断入职日志&#xff0c;数据量很大&#xff0c; 其实对于dolphinscheduler的性能是下降的&a…

c语言编程(模考3)统计字符串中数字字符的个数

统计字符串中数字字符的个数 #include<stdio.h> int main(){char inputString[100];int digitCount 0;printf("请输入一个字符串&#xff1a;");scanf("%s",inputString);for(int i0;inputString[i]!\0;i){if (inputString[i]>0&&inpu…

怎样实现内网穿透?

第一步&#xff1a;cpolar是一种安全的内网穿透云服务&#xff0c;它将内网下的本地服务器通过安全隧道暴露至公网。使得公网用户可以正常访问内网服务。打开网址 cpolar 下载 。 步骤&#xff1a; 打开网站>点击免费试用>创建账号>下载应用一直点下一步下载完成。第…

@PropertySource适配通配符加载到Environment的一种方案

PropertySource可将配置文件加载到内存&#xff0c;时间有限说干的&#xff0c;PropertySource注解有4个参数&#xff0c;其中value表示要加载文件的路径&#xff0c;这个参数不支持通配符。还有一个参数PropertySourceFactory是加载配置文件的工厂&#xff0c;这两个参数配合使…

【云原生】初识 Service Mesh

目录 一、什么是Service Mesh 二、微服务发展历程 2.1 微服务架构演进历史 2.1.1 单体架构 2.1.2 SOA阶段 2.1.3 微服务阶段 2.2 微服务治理中的问题 2.2.1 技术栈庞杂 2.2.2 版本升级碎片化 2.2.3 侵入性强 2.2.4 中间件多&#xff0c;学习成本高 2.2.5 服务治理功…

大家为什么开始配置长效IP代理?长效IP代理有什么优势?

随着网络技术的发展&#xff0c;越来越多的人开始关注网络安全和隐私保护。其中&#xff0c;长效IP代理作为一种安全、高效的解决方案&#xff0c;受到了越来越多人的关注。本文将探讨大家为什么开始配置长效IP代理&#xff0c;以及长效IP代理的优势。 一、长效IP代理的优势1.保…

Python Pandas简介及基础教程+实战示例。

文章目录 前言一、Pandas简介二、Python Pandas的使用关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前言 Pan…

马蹄集oj赛(双周赛第十五次)

目录 小码哥的开心数字 淘金者 捡麦子 小码哥玩游戏 手机测试 自动浇花机 买月饼 未来战争 双人成行 魔法水晶球 ​编辑自驾游 文章压缩 银河贸易市场 小码哥的开心数字 子难度&#xff1a;青铜 0时间限制&#xff1a;1秒 巴占用内存&#xff1a;64M 小码哥有超能…

HCIP-四、MUX-vlanSuper-vlan+端口安全

四、MUX-vlan&Super-vlan端口安全 MUX-vlan实验拓扑实验需求及解法1. 在SW1/2/3分别创建vlan10 20 30 402. SW1/2/3之间使用trunk链路&#xff0c;仅允许vlan10 20 30 40 通过。3. SW与PC/Server之间使用access链路。4. ping验证&#xff1a; Super-vlan端口安全实验拓扑实…