在带有 html 的 qtextedit 中,我通过鼠标滚轮更改字体大小。它应该改变每个字符的大小,例如+1 或-1。它工作,缓慢,但它工作。现在的问题是,如果我更改 html 列表的大小(通过 QTextCursor.createList() 创建)。正如您在图片中看到的,调整大小后的“测试”总是从相同的位置开始(如预期的那样),但黑点移动。无论文本有多大,我都希望他们保持在同一个位置。我不知道该怎么做,我已经尝试过 setMarging、setIndent、setTextIndent ......
def change_fontsize(self, direction):
cur=self.textedit.textCursor()
oldPosition=cur.position()
if cur.hasSelection():
begin=cur.anchor()
end=cur.position()
if begin>end:
helper=end
end=begin
begin=helper
else:
cur.select(QTextCursor.Document)
begin=0
plainText=self.textedit.toPlainText()
end=len(plainText)
for i in range(begin,end):
cur.setPosition(i)
cur.movePosition(QTextCursor.NextCharacter, QTextCursor.KeepAnchor)
fmt=cur.charFormat()
charSize=fmt.fontPointSize()
if direction=="up":
fmt.setFontPointSize(charSize+1)
else:
fmt.setFontPointSize(charSize-1)
cur.mergeCharFormat(fmt)