PyQt5 如何保存文本编辑文本为富文本



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

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

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

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

如果HTML可以满足你的需求,那就使用它。如前所述,RTF是一种古老的格式,其年龄越来越明显。如果您绝对需要RTF,则需要进行转换。如果您可以调用外部程序,我建议您pandoc;如果没有,您必须使用像 PyRTF 这样的库并手动解析 HTML 并使用 PyRTF 创建一个文档。

最新更新