Как обновить виджет Столбцы на urwid
Я начинаю использовать 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()", но это не то, что я пытаюсь сделать, я хочу заменить его другим виджетом.
Я начинаю думать, что это явно не так, как должно быть, но ничего не могу найти по этому поводу.
заранее спасибо.
1 ответ
Ты довольно близко!:)
При обновлении contents
список, вы должны предоставить кортеж, который содержит как виджет, так и объект параметров (который вы можете создать с помощью options()
метод), как:
cols.contents[0] = (Filler(Text('other test')), cols.options())
Смотрите документы дляColumns.contents
,