1.导入所需要的库:
-
tkinter
:Python 的标准 GUI 库,用于创建窗口、按钮、标签等界面元素。 -
pyautogui
:用于控制鼠标和键盘的库,这里用来获取鼠标的坐标。
from tkinter import *
import tkinter as tk
import pyautogui as pg
如果没有安装,则需要在终端输入:
pip install pyautogui
pip install tk
2.定义MousePositionApp
类,初始化界面:
class MousePositionApp:
def __init__(self, root):
self.root = root
self.root.title("自动获取鼠标坐标值") #设置窗口标题
self.root.geometry("200x100+1000+300") #设置窗口大小和初始位置
创建按钮和标签
self.fetch_button = tk.Button(root, text="获取坐标", command=self.mouse_position)
self.fetch_button.pack()
self.position_label = Label(root, text="X:0,y:0", font=("黑体", 20, "bold"))
self.position_label.pack()
绑定关闭事件
self.root.protocol("WM_DELETE_WINDOW", self.on_closing)
#当用户点击窗口的关闭按钮时,调用 self.on_closing 方法。
3.定义update_position方法:获取鼠标坐标
def update_position(self):
try:
mouse_x, mouse_y = pg.position() #使用 pyautogui 获取当前鼠标的坐标值
print("鼠标位置的坐标值:", mouse_x, mouse_y)
self.position_label.config(text="X:{},y:{}".format(mouse_x, mouse_y)) #更新标签内容,显示当前鼠标坐标。
except Exception as e: #如果获取坐标失败,捕获异常并显示错误信息。
print("获取坐标失败:", e)
self.position_label.config(text="获取坐标失败")
4.定义mouse_position方法:设置 1000 毫秒(1 秒)后调用update_position方法
def mouse_position(self):
# 调用 update_position 方法,并设置 1000 毫秒(1 秒)后再次调用
self.root.after(1000, self.update_position)
5. 定义on_closing
方法:关闭窗口
def on_closing(self):
print("程序退出")
self.root.destroy()
6.主程序入口
if __name__ == "__main__":
root = tk.Tk() #创建主窗口对象。
app = MousePositionApp(root) #实例化 MousePositionApp 类,传入主窗口对象。
root.mainloop() #启动Tkinter的事件循环,保持窗口运行。
运行代码后,会弹出一个窗口,点击“获取坐标”按钮即可显示当前鼠标的位置。
最后,全部代码如下
from tkinter import *
import tkinter as tk
import pyautogui as pg
class MousePositionApp:
def __init__(self, root):
self.root = root
self.root.title("自动获取鼠标坐标值")
self.root.geometry("200x100+1000+300")
self.fetch_button = tk.Button(root, text="获取坐标", command=self.mouse_position)
self.fetch_button.pack()
self.position_label = Label(root, text="X:0,y:0", font=("黑体", 20, "bold"))
self.position_label.pack()
self.root.protocol("WM_DELETE_WINDOW", self.on_closing)
def update_position(self):
try:
mouse_x, mouse_y = pg.position() # 使用 pyautogui 获取当前鼠标的坐标值
print("鼠标位置的坐标值:", mouse_x, mouse_y)
self.position_label.config(text="X:{},y:{}".format(mouse_x, mouse_y)) # 更新标签内容,显示当前鼠标坐标。
except Exception as e: # 如果获取坐标失败,捕获异常并显示错误信息。
print("获取坐标失败:", e)
self.position_label.config(text="获取坐标失败")
def mouse_position(self):
# 调用 update_position 方法,并设置 1000 毫秒(1 秒)后再次调用
self.root.after(1000, self.update_position)
def on_closing(self):
print("程序退出")
self.root.destroy()
if __name__ == "__main__":
root = tk.Tk()
app = MousePositionApp(root)
root.mainloop()