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进程的终端仿真器,这在可用性方面非常烦人。 / p>
有没有办法抓住“纯”修饰键?