2010-06-08 33 views
1

我想在一個Richtext Ctrl中顯示一些字符串(HTML格式)。在我的代碼我試圖用這種方式(self.txtmain是RichTextCtrl):wxPython - 我如何顯示一個html格式的字符串在wx.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窗口。 我在這裏錯過了什麼?

+0

檢查結果'htmlhandler.LoadStream(緩衝,出來)',false意味着失敗(不,我知道爲什麼,仍在努力對) – 2015-11-08 17:30:24

回答

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()) 
+0

改變out.getvalue()但我現在有「TypeError:預期的wx.InputStream或Python文件類對象。」 – wxpydon 2010-06-15 08:20:27

相關問題