【问题标题】:can't load xml file in wx python RichtextCtrl无法在 wx python RichtextCtrl 中加载 xml 文件
【发布时间】:2014-09-08 11:54:12
【问题描述】:

我是 wxpython 的新手。我试图在richtextctrl 中加载xml,但它显示为空白。我使用richtextctrl 来显示xml 和图像。

class TestFrame(wx.Frame):
 def __init__(self, parent):
    wx.Frame.__init__(self, parent, -1, "A Grid", size=(500, 300))
    panel = wx.Panel(self, -1)


 self.__editor = editor = self.rtc = rt.RichTextCtrl(self, wx.ID_ANY, pos=wx.DefaultPosition, size=(390, 388), style=0);

    bsizer = wx.BoxSizer()
    bsizer.Add(editor, 1, wx.EXPAND)
    self.SetSizerAndFit(bsizer)

    self.rtc.Freeze()

    xml_file = open("E:/books.xml", "r")
    xml = xml_file.read()
    xml_file.close()       

    handler = rt.RichTextXMLHandler()
    handler.SetFlags(rt.RICHTEXT_HANDLER_INCLUDE_STYLESHEET)

    rt_buffer = self.rtc.GetBuffer()
    #rt_buffer.AddHandler(handler)
    output = StringIO(xml);    

    handler.LoadStream(rt_buffer,  output)  

    self.rtc.Refresh()

    self.rtc.Thaw()

app = wx.App()
frame = TestFrame(None)
frame.Show(True)
app.MainLoop()

我也尝试了以下方法。但还是没有结果。

    self.rtc.GetBuffer().AddHandler(rt.RichTextXMLHandler())        
    stream = StringIO(xml);
    rt_buffer = self.rtc.GetBuffer()
    rt_buffer.LoadStream(stream, rt.RICHTEXT_TYPE_XML)

请告诉我这里缺少什么。

【问题讨论】:

    标签: python xml wxpython richtextctrl


    【解决方案1】:

    RichTextCtrl 根据documentation 使用自己的XML 格式。该 XML 用于设置文本样式。此小部件不适用于查看常规 XML。为此,我建议只使用常规的 wx.TextCtrl。

    【讨论】:

    • wx.TextCtrl 不支持图片。不管怎么说,还是要谢谢你。我可以在 RichtextCtrl 中将 xml 显示为字符串。
    • 你从来没有提到你想显示图像,只是 XML。
    • 我是 wxpython 的新手。我试图在richtextctrl 中加载xml,但它显示为空白。我使用richtextctrl 来显示xml 和图像。见顶
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2015-12-12
    相关资源
    最近更新 更多