使用Qt打开* .odt文件

时间:2015-05-02 10:54:48

标签: html c++ xml qt odt

我正在编写程序,我必须编写一个打开* .odt文件的代码。我的想法是从* .odt文档中提取content.xml文件,并将此xml文件中的文本设置为我的QTextEdit对象。我做了这个操作的第一部分。现在我将xml文本设置为QTextEdit时出现问题。例如,我有一个包含此xml文件的QDomDocument对象:

<?xml version="1.0" encoding="UTF-8"?>
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" office:version="1.2">
  <office:automatic-styles>
    <style:style style:name="c0" style:family="text">
      <style:text-properties fo:font-family="Sans"/>
    </style:style>
    <style:style style:name="p1" style:family="paragraph">
      <style:paragraph-properties/>
    </style:style>
    <style:style style:name="c10" style:family="text">
      <style:text-properties fo:font-family="Sans" fo:font-size="14pt" style:text-underline-style="none" fo:color="#ff0004"/>
    </style:style>
    <style:style style:name="c8" style:family="text">
      <style:text-properties fo:font-family="Sans" fo:font-size="14pt" style:text-underline-style="solid"/>
    </style:style>
    <style:style style:name="c6" style:family="text">
      <style:text-properties fo:font-style="italic" fo:font-family="Sans" fo:font-size="14pt"/>
    </style:style>
    <style:style style:name="c4" style:family="text">
      <style:text-properties fo:font-weight="bold" fo:font-family="Sans" fo:font-size="14pt"/>
    </style:style>
  </office:automatic-styles>
  <office:body>
    <office:text>
      <text:p text:style-name="p1"><text:span text:style-name="c4">BOLD</text:span></text:p>
      <text:p text:style-name="p1"><text:span text:style-name="c6">ITALIC</text:span></text:p>
      <text:p text:style-name="p1"><text:span text:style-name="c8">UNDERLINED</text:span></text:p>
      <text:p text:style-name="p1"><text:span text:style-name="c10">RED TEXT</text:span></text:p>
    </office:text>
  </office:body>
</office:document-content>

现在我想将此QDomDocument文本设置为QTextEdit。我试着用这一行做到这一点:

editor->setHtml(doc.toString()); // editor is a QTextEdit object and doc is QDomDocument

这是我的问题。在这一行之后,我的编辑器中有一个纯文本(没有任何格式,颜色等)。我怎么解决这个问题?

0 个答案:

没有答案