我目前正在使用 QTextEdit 开发 WYSIWYG 文本编辑器。每次加载新文件时,我都会重置并重新格式化 QTextDocument,读取文件(空白),然后将.setHtml()
其内容发送到编辑器。我打算让每个新创建的文件始终在单个函数中定义相同的默认样式。
相反,输入到空文件中的新文本正在接收来自先前加载的 QTextDocument 的格式,而不是默认为我提供的格式。如果我将语法突出显示的代码复制粘贴到一个文档中,然后创建并键入一个新文档,这是最明显的。字体、字体颜色和背景颜色都将延续到新文档中,尽管它不存在于其 html 结构中。
这是在将任何文件加载到 QTextEdit 之前我当前正在运行的函数:
fontDefault = QFont()
fontDefault.setFamily("Yantramanav")
fontDefault.setPointSize(11)
fontDefault.setWeight(QFont.Normal)
# editor is a QTextEdit.
def reset_document(editor, defaultFont=fontDefault):
newDocument = QTextDocument()
newDocument.setDocumentMargin(12)
newDocument.setDefaultFont(defaultFont)
editor.setDocument(newDocument)
editor.setCurrentFont(defaultFont)
# Stored on the QTextEdit yet is reset when replacing the QTextDocument.
editor.setTabStopWidth(33)
我曾假设当存储格式的文档被替换时,任何旧格式都会丢失。为什么不是这种情况?如何确保只应用我的默认样式?