#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)
Комментариев нет:
Отправить комментарий