Как отловить «голые» клавиши-модификаторы в urwid? - PullRequest
0 голосов
/ 25 апреля 2019

плохо знакомы с программированием в 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, который довольно раздражает в плане удобства использования.

Есть ли способ поймать "чистый" ключ-модификатор?

...