Как перехватить нажатие специальной клавиши (alt / ctrl)?

StackOverflow https://stackoverflow.com/questions/406933

  •  03-07-2019
  •  | 
  •  

Вопрос

Как я могу уловить такие комбинации клавиш, как АЛЬТ+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), за которым следует измененный ключ, в то время как другие устанавливают старший бит и отправляют только один байт.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top