плохо знакомы с программированием в GUI, циклами событий и т. Д., Поэтому, пожалуйста, потерпите меня.
Посмотрите на этот небольшой пример.Моя цель - переключить фокус на нажатие клавиши ALT
.
import urwid
class MainWindow(urwid.Frame):
def __init__(self):
header = urwid.LineBox(urwid.Edit(''))
body = urwid.LineBox(urwid.Edit(''))
super().__init__(urwid.Filler(body), header)
def unhandled_keypress(self, k):
if 'meta' in k:
self.focus_position, = {'body', 'header'} - {self.focus_position}
self.focus.base_widget.set_edit_text(k)
return True
def run(self):
urwid.MainLoop(self, unhandled_input=self.unhandled_keypress).run()
mw = MainWindow()
mw.run()
Это работает нормально, если я нажимаю ALT
вместе с обычной клавишей, но когда я нажимаю только ALT
, она передается дальшев эмулятор терминала, содержащий процесс python, который довольно раздражает в плане удобства использования.
Есть ли способ поймать "чистый" ключ-модификатор?