Не могу загрузить XML-файл в Python WX RichtextCtrl
Я новичок в wxpython. Я пытаюсь загрузить XML в richtextctrl, но он показывает пустым. Я использую 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)
пожалуйста, скажите мне, что здесь не хватает.
1 ответ
Решение
RichTextCtrl использует свой собственный формат XML в соответствии с документацией. Этот XML используется для оформления текста. Этот виджет не для просмотра обычного XML. Для этого я бы рекомендовал использовать обычный wx.TextCtrl.