1
我發現只有兩種方法(SaveFile,LoadFile)保存在文件中。 如何使用wxRichTextCtrl將XML數據直接保存在變量中?將數據保存在wxRichTextCtrl中
我發現只有兩種方法(SaveFile,LoadFile)保存在文件中。 如何使用wxRichTextCtrl將XML數據直接保存在變量中?將數據保存在wxRichTextCtrl中
您可以使用control.GetBuffer()來獲取RichTextBuffer,並使用RichTextXMLHandler將緩衝區保存到流中,該流可以是任何文件類型對象,例如StringIO例如如果室溫是您的富文本控制
import cStringIO
buf = cStringIO.StringIO()
handler = wx.richtext.RichTextXMLHandler()
handler.SetFlags(wx.richtext.RICHTEXT_HANDLER_INCLUDE_STYLESHEET)
handler.SaveStream(rt.GetBuffer(), buf)
print buf.getvalue()
在這裏,你可以運行,看看它打印出XML,當您單擊框架之外的富文本CNTRL一個完整的例子
import wx
import wx.richtext
app = wx.App(False)
f=wx.Frame(None, title="Test")
f.Show()
rt = wx.richtext.RichTextCtrl(f, size=(200,200))
def onEvent(evt):
import cStringIO
buf = cStringIO.StringIO()
handler = wx.richtext.RichTextXMLHandler()
handler.SetFlags(wx.richtext.RICHTEXT_HANDLER_INCLUDE_STYLESHEET)
handler.SaveStream(rt.GetBuffer(), buf)
print buf.getvalue()
f.Bind(wx.EVT_LEFT_DOWN, onEvent)
app.MainLoop()
輸出:
<?xml version="1.0" encoding="UTF-8"?>
<richtext version="1.0.0.0" xmlns="http://www.wxwidgets.org">
<paragraphlayout textcolor="#101010" fontsize="10" fontstyle="90" fontweight="90" fontunderlined="0" fontface="Sans" alignment="1" parspacingafter="10" parspacingbefore="0" linespacing="10">
<paragraph>
<text>sdsa</text>
</paragraph>
</paragraphlayout>
</richtext>