Как изменить пользовательский интерфейс на urwid

Я создаю маленький urwid приложение для моего использования, структура Filler который имеет Pile состоит из нескольких Text поданный, сопровождаемый Divider, Edit, другой Divier и, наконец, Text:

Text1
Text2
Text3
Divide
>> Edit
Divide
Textout

Теперь я хочу заменить Text1 .. Text3 с другим Text поле, точное количество тех, которые варьируются. Я считаю, что я должен перерисовать весь интерфейс, но я не получил ответа на draw_screen()

Мои занятия:

class main_ui(urwid.Filler):
  def __init__(self):
      self.body = welcom()
      self.options = self.body.options
      self.replay = self.body.replay
      self.ask = self.body.ask
      super(main_ui,self).__init__(self.body.pile,valign='top')
  def paint(self):
      super(main_ii,self).__init__(urwid.pile[urwid.Text('test')])

welcom() функция генерирует вышеуказанные поля, и options является dict которая содержит информацию, которая мне нужна

Я запускаю цикл вот так

def refresh(_loop,_data):
    m.new_point()
    _loop.draw_screen()
    _loop.set_alarm_in(2,refresh)


m = main_ui()
loop = urwid.MainLoop(m)
loop.set_alarm_in(2,refresh)
loop.run()

Как я могу обновить свой интерфейс?

0 ответов

Другие вопросы по тегам