269 字
1 分钟
PyQt5 QTextEdit自动滚动到最底端
前言
如何实现在编辑 QTextEdit 中文本后,自动滚动到最低端,即最后一行。
目前,我找下来一共有两种方法,一个是移动光标,另一个是移动滚动条,都能实现差不多的效果。
注意 PyQt 的版本,百度上有的教程我实际操作起来是缺参数的。
移动光标
from PyQt5.QtWidgets import QTextEdit # 文本框from PyQt5.QtGui import QTextCursor # 光标
myTextEdit = QTextEdit()
myTextEdit.setPlainText("你需要设置的文本")
# TODO: 在每次改变文本后, 添加如下代码myTextEdit.moveCursor(QTextCursor.MoveOperation.End, QTextCursor.MoveMode.MoveAnchor) # 移动光标至文本末尾
def moveCursor(self, operation, mode) operation: QTextCursor.MoveOperation 移动操作(末尾、开头…) mode: QTextCursor.MoveMode 移动模式(MoveAnchor, KeepAnchor) 移动模式中,MoveAnchor 是直接移动光标,KeepAnchor 是类似选中的方法
移动滚动条
from PyQt5.QtWidgets import QTextEdit # 文本框from PyQt5.QtGui import QTextCursor # 光标
myTextEdit = QTextEdit()
myTextEdit.setPlainText("你需要设置的文本")
# TODO: 在每次改变文本后, 添加如下代码myTextEdit.verticalScrollBar().setValue(myTextEdit.verticalScrollBar().maximum())
使用这种方法实际上是调用了 QTextEdit 中的 QScollBar 实例,并将它移动到末尾。
PyQt5 QTextEdit自动滚动到最底端
https://fuwari.vercel.app/posts/编程/qt/pyqt5-qtextedit自动滚动到最底端/