首页 > 解决方案 > PyQt5 如何将文本编辑文本保存为富文本

问题描述

嗨,我正在编写一个富文本编辑器,我想将我的 textEdit 字段文本保存为富文本文件。我做到了。但是,我编写了具有不同字体颜色、大小、粗体的富文本。但是当我将它保存为 rtf 文件时。所有更改都消失了。(我写到PlainText。我必须编写不同的方法)如何保存我的文本更改(如字体、大小、颜色)?

def savefl(self):
        try:
            filey = QtWidgets.QFileDialog.getSaveFileName(self,"Save","","Rich Text File (*.rtf);;Text File(*.txt);;All Files (*.*)")
            with open(filey[0], "w", encoding="utf-8") as file2:
                file2.write(self.textEdit.toPlainText())
        except (FileNotFoundError,FileExistsError):
            pass

标签: python

解决方案


富文本富文本格式RTF 不一定是一回事。Microsoft Word 文档 (.doc)、Markdown (.md) 和 Libreoffice 文档 (.odf) 都是富文本文件格式。

HTML 也是如此,这就是 Qt 让您使用该toHtml方法获取富文本的方式。没有办法从 Qt 中获取 RTF。您必须将 HTML 转换为 RTF。

如果 HTML 可以满足您的需求,请使用它。正如之前所写的,RTF 是一种古老的格式,它的时代越来越明显。如果您绝对需要 RTF,则需要进行转换。我建议pandoc您是否可以调用外部程序;如果没有,您将不得不使用 PyRTF 之类的库并手动解析 HTML 并使用 PyRTF 创建文档。


推荐阅读