每次发出 textChanged() 时,都会处理 QTextBrowser 的文本,然后将其重新插入到该 QTextBrowser 中。这会导致当前光标出现问题。
在 | 输入内容后,我该怎么做?并重新插入文本,光标在新插入的字符后面(这里:X)?
Hello| World
它应该在哪里:
HelloX| World
在哪儿:
|HelloX World
我需要一些帮助,因为我不理解 QT 文档的相应部分。
如果您在光标之后插入文本,正如您的示例所建议的那样,您应该使用文本光标的insertText
方法而不是替换编辑器的全部内容 - 应该会为您节省一些麻烦:
editor.textCursor().insertText('X')
否则,您应该能够像这样恢复以前的位置:
old_position = editor.textCursor().position()
# ...
new_cursor = editor.textCursor()
new_cursor.setPosition(old_position)
editor.setTextCursor(cursor)