Как избежать автоматического повторного нажатия клавиши, если она нажата?

В настоящее время я пишу программу с библиотекой "клавиатура" в Python 3 на Debian.

Так что, если я удерживаю клавишу. Библиотека клавиатуры получает несколько KeyDownEvents вместо одного в KeyPress, но мне нужно только первое событие. Есть ли способ подавления автоповтора?

Я уже пробовал несколько команд терминала в python, которые должны остановить автоповтор клавиатуры, но это в основном работает только для печатных символов, но мне также нужно только 1 событие, если, например, нажата клавиша shift
Мой вывод заключается в том, что команды терминала вообще не влияют на библиотеку клавиатуры.

Есть идеи?

С наилучшими пожеланиями

2 ответа

Если вы согласны внести общесистемные изменения, вы можете отключить повтор клавиш с помощью:

      import os
os.system('xset r off')

Вы можете изменить его обратно при выходе из программы с помощью:

      os.system('xset r on')
      if keyboard.is_pressed("b"):
    while keyboard.is_pressed("b"):
        print("")#something to do otherwise error occurs

Программа будет ждать, пока клавиша не будет отпущена, чтобы выполнить приведенный ниже код. Вы можете поэкспериментировать с многопоточностью, если вам нужно, чтобы ваша программа продолжала выполнять код, пока нажата клавиша. «b» используется в качестве ключа в коде, но вы можете изменить его на другую букву.

Другие вопросы по тегам