PyQt5如何保存文本将文本编辑为富文本格式

时间:2019-07-19 11:59:57

标签: python

嗨,我正在编码一个RTF编辑器,我想将textEdit字段文本另存为RTF文件。我是这样做的。但是,我写的是带有不同字体颜色,大小,粗体的富文本。但是当我将其另存为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

1 个答案:

答案 0 :(得分:0)

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

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

如果HTML可以满足您的需求,请使用它。 As has been written before,RTF是一种古老的格式,并且其年龄越来越大。如果您绝对需要RTF,则需要进行转换。如果可以调用外部程序,建议使用require(stringi) set.seed(1) values <- c("AGLRJMV", "KTKOXSOCOFMTMSOV", "GTSHH") stri_rand_shuffle(values) #[1] "GAJVLRM" "VOTSXMOTFMOKSCKO" "SHTGH" 。如果没有,则必须使用PyRTF之类的库并手动解析HTML并使用PyRTF创建文档。