Загляните в "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())