Как перехватить нажатие специальной (alt / ctrl) клавиши? - PullRequest
8 голосов
/ 02 января 2009

Как я могу поймать комбинации клавиш, такие как ALT + K или CTRL + ALT + H in питон curses?

1 Ответ

11 голосов
/ 02 января 2009

Терминал преобразует управляющий ключ в сочетании с буквенным ключом в обычный код ASCII. Это можно прочитать из функции getch (), как и при нажатии любой другой клавиши.

CTRL-A: getch() returns 1
CTRL-B: getch() returns 2
...
CTRL-Z: getch() returns 26

Кроме того, для активации других специальных функциональных клавиш (например, стрелка влево, F1, home и т. Д.) Должна быть вызвана функция клавиатура ().

Я не верю, что существует портативный способ получения мета-ключей (например, ALT-H) через терминал. Некоторые отправляют escape (0x1B) с последующим измененным ключом, в то время как другие устанавливают старший бит и отправляют только один байт.

...