Страницы

Поиск по вопросам

суббота, 21 декабря 2019 г.

Слушатель клавиши Python

#python #python_36


Как сделать слушателя кнопки в Питоне? Аля: нажал на клавишу CTRL -> выполнилась
функция f()

Windows/Python 3.6.0
    


Ответы

Ответ 1



Например, pynput (pip install pynput). Пример из официальной документации: from pynput import keyboard def on_press(key): try: print('alphanumeric key {0} pressed'.format(key.char)) except AttributeError: print('special key {0} pressed'.format(key)) def on_release(key): print('{0} released'.format(key)) if key == keyboard.Key.esc: # Stop listener return False # Collect events until released with keyboard.Listener( on_press=on_press, on_release=on_release) as listener: listener.join() Жрет любые символы (Fn+, *.Lock(NumLock, CapsLock), Alt - все, что угодно). Чтобы прекратить слушать вам необходимо бросить исключение StopException или вернуть False из обработчика. Функции on_press, on_release автоматически исполняются не в основном потоке. Как бонус дополнительно можно слушать события мыши.

Ответ 2



Можно использовать стандартный модуль msvcrt. import msvcrt, sys while True: pressedKey = msvcrt.getch() if pressedKey == 'q': sys.exit() else: print "Key:" + str(pressedKey) Плюсы: Присутствует из коробки. Биндинг непосредственно к msvcrt. Минусы: Кнопки Alt, Ctrl, Shift и все *Lock не ловятся. Работает не во всех окружениях. У меня не работало в PyCharm и GitBash (долго не понимал что происходит, пока не догадался запустить в powershell)

Комментариев нет:

Отправить комментарий