обнаружение автоматических ключевых повторов в проклятиях
Я пишу небольшое приложение в текстовом режиме, используя проклятия на Linux.
Для ввода с клавиатуры я использую функции curses. Ключ автоматически повторяет работу, например, если я держу ключ вниз, я получаю несколько ключевых событий, пока я не отпущу ключ снова.
Можно ли также отличить реальные ключевые события от событий, порожденных логикой повтора ключей?
Фон: приложение представляет собой небольшой интерфейс ввода данных, где пользователь может изменять целые числа определенных параметров. В длительное время приложение будет работать без стандартной клавиатуры. У меня будет только четыре кнопки для ввода данных: "увеличение", "уменьшение", " ОК " и "отмена".
Поскольку диапазоны чисел велики, я хотел бы знать, удерживает ли пользователь клавишу. Если он это сделает, я смогу быстрее сканировать свой числовой диапазон, увеличив его не на единицу, а на 10 или, может быть, на 100. Если пользователь otoh нажимает клавишу, метод ввода должен быть точным снова и просто увеличивать / уменьшать числа на единицу.
Это это возможно с помощью клавиатуры ввода функций проклятий?
1 ответ:
No-curses просто получает ключи от терминала. Если вам действительно это нужно, вы можете попробовать Узнать, автоматизированы ли повторы клавиш или нет, посмотрев на задержку между каждым нажатием клавиши. Однако, особенно для удаленных соединений, это может быть не очень хорошим решением, так как задержка будет зависеть от задержки в сети.
Лучшим решением может быть использование UP / DOWN для небольших шагов и PAGEUP/PAGEDOWN для больших шагов.