Python 一旦按下鼠标按钮,如何使程序不以无休止的循环运行

Python 一旦按下鼠标按钮,如何使程序不以无休止的循环运行,python,python-3.x,pynput,Python,Python 3.x,Pynput,因此,我试图使程序在按下后不以无休止的循环方式运行,并检查鼠标按钮何时被释放,停止while循环 from pynput import mouse from pynput.mouse import Button, Controller import time m = Controller() def on_click(x, y, button, pressed): print('Pressed' if pressed else 'Released') while (pres

因此,我试图使程序在按下后不以无休止的循环方式运行,并检查鼠标按钮何时被释放,停止while循环

from pynput import mouse
from pynput.mouse import Button, Controller
import time
m = Controller()


def on_click(x, y, button, pressed):
    print('Pressed' if pressed else 'Released')

    while (pressed):
        m.move(0, 1)
        time.sleep(.001)

with mouse.Listener(
        on_click=on_click) as listener:
    listener.join()

像这样的。不要试图睡1毫秒,你会浪费太多的资源

from pynput import mouse
from pynput.mouse import Button, Controller
import time
m = Controller()

mousedown = False


def on_click(x, y, button, pressed):
    global mousedown
    print('Pressed' if pressed else 'Released')
    mousedown = pressed

listener = mouse.Listener(on_click=on_click) 

while True:
    if mousedown:
        m.move( 0, 1 )
    time.sleep( 0.1 )

你不能那样做。您的事件处理程序必须执行一些简短的操作,然后返回,否则,
mouse.Listener
无法侦听更多事件。你想在这里干什么?按下鼠标时移动鼠标?你必须使用定时器来完成这项工作。单击时的
处理程序可以更新其他线程监视的全局状态。我正在尝试使其成为这样,如果按下鼠标左键,它会向下移动光标,直到释放鼠标左键