我开始使用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小部件,但这并不是我要替换为其他小部件的目的。
我开始认为这显然不是应该采取的方法,但是却找不到任何东西。
提前谢谢。
答案 0 :(得分:2)
您非常接近! :)
在更新contents
列表时,您需要提供一个包含小部件和选项对象(可以使用options()
方法构造的元组)的元组,例如:
cols.contents[0] = (Filler(Text('other test')), cols.options())