html — открытие файлов * .odt с использованием Qt

Я пишу программу, и я должен написать код, который открывает файлы * .odt. Моя идея состоит в том, чтобы извлечь файл content.xml из документа * .odt и установить текст из этого файла xml в мой объект QTextEdit. Я сделал первую часть этой операции. Теперь у меня проблема с установкой текста xml в QTextEdit. Например, у меня есть объект QDomDocument, который содержит этот XML-файл:

<?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

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]