我是 urwid 的新手,认为我误解了一些东西。我不明白为什么这不起作用。而且我不明白错误消息。
#!/usr/bin/env python3
import urwid
def show_or_exit(key):
if key in ('q', 'Q'):
raise urwid.ExitMainLoop()
txt.set_text(repr(key))
txt = urwid.Text('FooBar')
fil = urwid.Filler(txt, valign='middle', height=('relative', 70))
box = urwid.LineBox(fil)
pad = urwid.Padding(box, align='center', width=('relative', 85))
loop = urwid.MainLoop(pad, unhandled_input=show_or_exit)
loop.run()
Run Code Online (Sandbox Code Playgroud)
我也遇到过这样的问题,为了更好地了解发生的情况,您可能应该阅读有关小部件大小调整模式的文档部分。基本上,这与小部件渲染的工作方式有关,每个小部件的渲染工作方式都不同,具体取决于其“大小调整模式”。这是关于 Urwid 最难理解的事情之一,一旦你明白了这一点,你就能更高效地利用它。:)
这是您提供的代码的工作版本:
#!/usr/bin/env python3
import urwid
def show_or_exit(key):
if key in ('q', 'Q'):
raise urwid.ExitMainLoop()
txt.set_text(repr(key))
txt = urwid.Text('FooBar')
widget = urwid.LineBox(txt)
widget = urwid.Padding(widget, align='center', width=('relative', 85))
widget = urwid.Filler(widget, 'middle')
loop = urwid.MainLoop(widget, unhandled_input=show_or_exit)
loop.run()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
873 次 |
| 最近记录: |