我开始使用urwid,我想做的一件简单的事情就是有两列,并且能够更新其中一列以显示不同的小部件
我尝试了以下代码,但我一直得到一个错误
urwid.container.ColumnsError: added content invalid <Filler box widget <Text flow widget 'other test'>>
我只想能够取代
from urwid import *
cols = Columns([Filler(Text('test')), Filler(Text('test'))])
loop = MainLoop(cols)
cols.contents[0] = Filler(Text('other test'))
# also tried .append just for trying, same result
loop.run()
我知道我可以用".set_Text(("更改Text小部件,但这不是我想要做的,我想用其他小部件替换它。
我开始认为这显然不是应该的方式,但我对此一无所知。
提前谢谢。
您非常接近!:(
当更新contents
列表时,您需要提供一个元组,其中包含小部件和选项对象(可以使用options()
方法构建(,如:
cols.contents[0] = (Filler(Text('other test')), cols.options())
参见Columns.contents
的文档。