Печать при нажатии мыши

Я использую PyMouse (Event) для обнаружения нажатия кнопки мыши:

from pymouse import PyMouseEvent class DetectMouseClick(PyMouseEvent): def __init__(self): PyMouseEvent.__init__(self) def click(self, x, y, button, press): if button == 1: if press: print("click") else: self.stop() O = DetectMouseClick() O.run() 

Это работает до сих пор, но теперь я хочу, чтобы цикл print("click") пока мышь не будет нажата больше … Я попытался:

 def click(self, x, y, button, press): if button == 1: if press: do = 1 while do == 1: print("down") if not press: do = 0 

А также что-л. как:

 while press: print("click") 

Кто-то может мне помочь? Благодаря!

One Solution collect form web for “Печать при нажатии мыши”

Я думаю, что Оли указывает в своем комментарии, что при нажатии кнопки мыши постоянный поток кликов отсутствует, поэтому вам придется print в цикле. Наличие цикла while, выполняющегося в одном потоке, предотвращает запуск события клика, когда мышь выпущена, поэтому единственный способ, с помощью которого я могу достичь того, что вам нужно, – print("click") из отдельного потока.

Я не программист на Python, но у меня был удар, который работает на моей машине (Python 2.7 на Windows 8.1):

 from pymouse import PyMouseEvent from threading import Thread class DetectMouseClick(PyMouseEvent): def __init__(self): PyMouseEvent.__init__(self) def print_message(self): while self.do == 1: print("click") def click(self, x, y, button, press): if button == 1: if press: print("click") self.do = 1 self.thread = Thread(target = self.print_message) self.thread.start() else: self.do = 0 print("end") else: self.do = 0 self.stop() O = DetectMouseClick() O.run() 
Interesting Posts
Python - лучший язык программирования в мире.