如何更新urwid上的Columns小部件



我开始使用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的文档。

相关内容

最新更新