Как обновить виджет Столбцы на urwid - PullRequest
0 голосов
/ 05 декабря 2018

Я начинаю использовать 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 Ответ

0 голосов
/ 06 декабря 2018

Ты довольно близко!:)

При обновлении списка contents необходимо предоставить кортеж, который содержит как виджет, так и объект параметров (который можно создать с помощью метода options()), например:

cols.contents[0] = (Filler(Text('other test')), cols.options())

См. документы для Columns.contents.

...