python - 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
解决方案
富文本和富文本格式RTF 不一定是一回事。Microsoft Word 文档 (.doc)、Markdown (.md) 和 Libreoffice 文档 (.odf) 都是富文本文件格式。
HTML 也是如此,这就是 Qt 让您使用该toHtml
方法获取富文本的方式。没有办法从 Qt 中获取 RTF。您必须将 HTML 转换为 RTF。
如果 HTML 可以满足您的需求,请使用它。正如之前所写的,RTF 是一种古老的格式,它的时代越来越明显。如果您绝对需要 RTF,则需要进行转换。我建议pandoc
您是否可以调用外部程序;如果没有,您将不得不使用 PyRTF 之类的库并手动解析 HTML 并使用 PyRTF 创建文档。
推荐阅读
- json - CloudFormation 上的简单 StackPolicy 始终无效
- django - 在生产模式下在 Django 中上传图像/文件
- regex - 在分隔符正则表达式之后保留空间
- php - 记录 PHP 异常跟踪的安全方式(可能包括合理的凭据)
- python - 增加池大小时多处理性能降低
- php - html中的多个mysql回显
- java - ClassCastException 错误?
- ruby - Ruby - 具有自定义文件名的 Watir 保存文件
- tempus-dominus-datetimepicker - tempusdominus clear minDate/maxDate
- php - 从 cron 调用 phing 任务