wxPython - 如何在wx.RichTextCtrl中显示html格式的字符串

时间:2010-06-08 09:44:32

标签: wxpython richtextctrl

我正在尝试在Richtext Ctrl中显示一些字符串(html格式化)。在我的代码中,我试图以这种方式使用它(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 :(得分:0)

查看“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())