wxPython - Как я могу отобразить строку в формате html в wx.RichTextCtrl - PullRequest
1 голос
/ 08 июня 2010

Я пытаюсь отобразить некоторую строку (в формате html) в Richtext Ctrl.В моем коде я попытался использовать его таким образом (self.txtmain - это RichTextCtrl):

out = StringIO()
htmlhandler = rt.RichTextHTMLHandler()
buffer = self.txtmain.GetBuffer()
buffer.AddHandler(htmlhandler)
out.write(string)
out.seek(0)
htmlhandler.LoadStream(buffer, out)
self.txtmain.Refresh()

Ошибки не выдаются, но окна RichTextCtrl не обновляются.Что мне здесь не хватает?

1 Ответ

0 голосов
/ 13 июня 2010

Загляните в "wx.Layout ()", чтобы обновить окно / виджет.

В некоторых случаях я использую "wx.Layout ()", чтобы перерисовать все окно, после добавления элемента

например, когда я прячу один и показываю другой виджет в том же месте ...

в этом случае self.Layout (), после self.txtmain.Refresh () ..

out = StringIO()
htmlhandler = rt.RichTextHTMLHandler()
buffer = self.txtmain.GetBuffer()
buffer.AddHandler(htmlhandler)
out.write(string)
out.seek(0)
htmlhandler.LoadStream(buffer, out)
self.txtmain.Refresh()
self.Layout()

Но я не уверен, что это сработает в вашем случае ...

и для извлечения содержимого из StringIO () необходимо использовать getvalue ()

htmlhandler.LoadStream(buffer, out)

до

  htmlhandler.LoadStream(buffer, out.getvalue())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...