1

我正在尝试在 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 窗口未更新。我在这里想念什么?

4

1 回答 1

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())
于 2010-06-12T21:00:25.530 回答