为什么qtextedit更换document后字体大小发生变化

而且查看qtextedit的font,还是原来的font,结果就是找不到方法改回原来的字体大小了

在使用 Qt 中的 QTextEdit 控件时,更换文档内容后字体大小发生变化的原因通常是因为新文档中设置了不同的字体、字号等样式属性。如果您希望在更换文档后保留原有字体大小,可以在更换文档前将当前的字体大小保存下来,并在更换文档后重新设置字体大小。

以下是一个示例代码,用于演示如何保存和恢复字体大小:

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QTextEdit

app = QApplication([])

# 创建一个 QTextEdit 控件并设置初始字体大小
editor = QTextEdit()
editor.setFontPointSize(12)

# 获取当前字体大小并保存
font_size = editor.fontPointSize()

# 更换文档内容前先保存字体大小
old_doc = editor.document()
new_doc = QTextDocument()
new_doc.setPlainText("新文档内容")
new_doc.setDefaultFont(old_doc.defaultFont())
new_doc.setDefaultStyleSheet(old_doc.defaultStyleSheet())
editor.setDocument(new_doc)
editor.setFontPointSize(font_size)  # 恢复字体大小

editor.show()
app.exec_()

上述代码中,我们首先创建了一个 QTextEdit 控件并设置字体大小为 12,然后获取当前字体大小并保存到变量 font_size 中。接下来,我们新建了一个 QTextDocument 对象并设置了新的文档内容,然后将该文档设置为 QTextEdit 控件的文档对象并恢复字体大小。

需要注意的是,默认情况下,QTextEdit 控件的字体大小会随用户在编辑器中输入内容而自动调整,因此在使用 QTextEdit 控件时可能需要特别处理字体大小。