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

Я использую 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") пока мышь не будет нажата больше … Я попытался:

  • Matplotlib: нарисуйте выделенную область в форме прямоугольника с помощью мыши
  • Моделирование кликов мыши на Python
  • Позиция мыши Python Tkinter
  •  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") 

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

  • Как переписать рекурсивную функцию для использования цикла?
  • Почему вы должны вызывать .iteritems () при итерации по словарю в python?
  • Позиция мыши Python Tkinter
  • Переменные на основе ввода
  • Проблема цикла при повторении через список и удалении повторяющихся элементов
  • Доступ к индексу в циклах Python for for
  • 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() 
    Python - лучший язык программирования в мире.