如何在 urwid 中指定边框?
How to specify borders in urwid?
我是 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()
我也遇到过这样的问题,要更好地了解发生了什么,您可能应该阅读 the documentation section about widgets sizing modes。基本上,这与小部件渲染工作的方式有关,每个小部件的渲染方式都不同,具体取决于其 "sizing mode"。这是了解 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()
我是 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()
我也遇到过这样的问题,要更好地了解发生了什么,您可能应该阅读 the documentation section about widgets sizing modes。基本上,这与小部件渲染工作的方式有关,每个小部件的渲染方式都不同,具体取决于其 "sizing mode"。这是了解 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()