在带有html的qtextedit中,我正在通过鼠标滚轮更改fontsize。 它应该改变每个字符的大小,例如+ 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)