обнаруживать автоматические повторения клавиш в проклятиях - PullRequest
3 голосов
/ 16 ноября 2010

Я пишу небольшое приложение в текстовом режиме, используя curses в Linux.

Для ввода с клавиатуры я использую функции curses. Ключ автоматически повторяет работу, например если я удерживаю клавишу нажатой, я получаю несколько событий клавиш, пока снова не отпущу клавишу.

Можно ли отличить реальные события ключа от событий, генерируемых логикой повторения ключа?

Справочная информация: приложение представляет собой небольшой интерфейс ввода данных, где пользователь может изменять целые числа определенных параметров. В конечном итоге приложение будет работать без стандартной клавиатуры. У меня будет только четыре кнопки для ввода данных: «увеличить», «уменьшить», «ок» и «отменить».

Поскольку диапазоны номеров велики, я бы хотел знать, удерживает ли пользователь клавишу. Если он это сделает, я могу быстрее сканировать свой числовой диапазон, увеличивая не число на единицу, а на 10 или, может быть, на 100. Если пользователь нажимает клавишу, метод ввода снова должен быть точным и просто увеличивать / уменьшать числа на единицу.

Возможно ли это с помощью функций ввода проклятий с клавиатуры?

1 Ответ

3 голосов
/ 16 ноября 2010

Нет - curses просто получает ключи от терминала. Если вам это действительно нужно, вы можете попробовать , чтобы узнать, автоматизированы ли повторы клавиш или нет, посмотрев на задержку между каждым нажатием клавиши. Однако, особенно через удаленные соединения, это может быть не очень хорошим решением, так как задержка будет зависеть от задержки в сети.

Лучшим решением может быть использование ВВЕРХ / ВНИЗ для маленьких шагов и PAGEUP / PAGEDOWN для больших шагов.

...