在富文本编辑器中更改列表的字体大小:列表点滑开

时间:2013-09-02 22:21:10

标签: html qt pyqt4

在带有html的qtextedit中,我正在通过鼠标滚轮更改fontsize。 它应该改变每个字符的大小,例如+ 1或-1。 它运作缓慢,但它的工作原理。现在问题是如果我改变html列表的大小(通过QTextCursor.createList()创建)。正如您在图片中看到的那样,调整大小后的“测试”总是从相同的位置开始(按预期),但黑点移动。无论文字有多大,我都希望他们能保持同一个位置。我不知道怎么做,我已经尝试过setMarging,setIndent,setTextIndent ......

The list is indented wrong

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)

0 个答案:

没有答案