首页 > 解决方案 > 如何从侦听器线程 pynput 中提取 X、Y 屏幕坐标?

问题描述

使用 mouse.Listener (Pynput) 时,我无法访问屏幕 X、Y 坐标的值

我正在尝试使用 pynput、Pillow (ImageGrab) 和 OpenCV (cv2) 构建屏幕捕获工具,并且需要将 X、Y 屏幕坐标存储在单独的变量中。

我已经厌倦了从 on_click() 函数中返回 x,y 变量,并尝试将 mouse.Listener (线程函数)分配给没有运气的变量(只是返回)

该功能正常工作,并准确显示按下和释放鼠标时的 X、Y 坐标。

有没有办法存储鼠标按下和释放时获得的 X、Y 坐标?

Mac OSX 10.13.6,Python 3.7.3。

from pynput import mouse

def on_click(x, y, button, pressed):

    if pressed:
        print(f"start_pos = ({x},{y})")
    elif not pressed:
        print(f"end_pos = ({x},{y})")
        return False

listener = mouse.Listener(on_click=on_click)
listener.start()

我无法存储来自输出线程对象的值。

标签: pythonpython-imaging-librarypynput

解决方案


如果您从中导入 Controllerpynput并按原样使用它;

mouse = Controller()
mouse.position

希望能帮助到你!


推荐阅读