我有一个鼠标侦听器:
from pynput.mouse import Listener, Button
def on_click(x, y, button):
if button == Button.left:
xy_dict["x"] = x
xy_dict["y"] = y
if button == Button.right:
raise MyException(button)
with Listener(on_click=on_click) as listener:
listener.join()
我还有其他脚本中的main()
功能。假设main()
从鼠标侦听器中获取了x
和y
,但是我如何才能将这两个线程结合起来?
答案 0 :(得分:0)
上下文管理器方法(即with
)仅在您希望能够停止侦听器时才有用。如果不需要,只需启动侦听器:
listener = Listener(on_click=on_click)
listener.start()
它将自动作为新线程启动:
https://pythonhosted.org/pynput/mouse.html#monitoring-the-mouse
鼠标监听器是
threading.Thread
,所有回调都将从线程中调用。
访问x
和y
值的最简单方法是将其包装在一个类中并更新处理程序中的实例属性。或定义两个全局变量(x
和y
)。