用服务器建立网站吗,如何创作个人网站,建设部证书查询官方网站,免费网站建设培训班python实现鼠标实时坐标监测
一、说明
使用了以下技术和库#xff1a;
tkinter#xff1a;用于创建GUI界面。pyperclip#xff1a;用于复制文本到剪贴板。pynput.mouse#xff1a;用于监听鼠标事件#xff0c;包括移动和点击。threading#xff1a;用于创建多线程
tkinter用于创建GUI界面。pyperclip用于复制文本到剪贴板。pynput.mouse用于监听鼠标事件包括移动和点击。threading用于创建多线程以便在后台执行鼠标事件监听和标签更新的任务。time用于控制线程休眠以定时更新标签文本。
二、代码
# codinggbk # 指定文件编码为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复制坐标, commandself.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(targetself.start_mouse_listener, daemonTrue).start() # 创建并启动鼠标事件监听的线程threading.Thread(targetself.update_label_thread, daemonTrue).start() # 创建并启动标签更新的线程def copy_coordinates(self):x, y self.last_extracted_coordinates # 获取上一次截取的坐标coordinates fX: {x}, Y: {y} # 格式化坐标文本pyperclip.copy(coordinates) # 复制坐标文本到剪贴板self.label.config(textf已复制坐标{coordinates}) # 更新标签文本def start_mouse_listener(self):with mouse.Listener(on_moveself.on_move, on_clickself.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(textf截取坐标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() # 启动应用程序的主循环
三、效果