Как перехватить нажатие специальной клавиши (alt / ctrl)?
Вопрос
Как я могу уловить такие комбинации клавиш, как АЛЬТ+K или CTRL+АЛЬТ+H в python curses
?
Решение
Терминал преобразует клавишу управления в сочетании с буквенной клавишей в обычный ASCII-код.Это можно прочитать из гетч() функционирует так же, как любое другое нажатие клавиши.
CTRL-A: getch() returns 1
CTRL-B: getch() returns 2
...
CTRL-Z: getch() returns 26
Кроме того, клавиатура() функция должна быть вызвана для включения других специальных функциональных клавиш (напримерстрелка влево, F1, home и т.д.).
Я не верю, что существует переносимый способ получения мета-ключей (напримерALT-H) через терминал.Некоторые отправляют escape (0x1B), за которым следует измененный ключ, в то время как другие устанавливают старший бит и отправляют только один байт.
Не связан с StackOverflow