如何在 QTextBrowser 中将选定的文本居中

How to to center selected text in QTextBrowser

下面发布的代码创建 QTextBrowser window 用 100 行文本填充它:从 MESSAGE-0000 一直到 MESSAGE-0099

from PyQt4 import QtCore, QtGui
app=QtGui.QApplication([])

textBrowser = QtGui.QTextBrowser()
for i in range(100):
    textBrowser.insertPlainText('MESSAGE-%04d'%i + '\n')

textBrowser.show()
app.exec_()

问题:如何找到行号,其中文本显示:MESSAGE-0051,然后是 select 或突出显示它,然后滚动到它,这样 selected-highlightet 行是位于 QTextBrowser window 的上边缘,因此结果将如下所示:

如何实现?

如果向后搜索,它会自动将所选行滚动到视口顶部:

textBrowser.moveCursor(QtGui.QTextCursor.End)
textBrowser.find('MESSAGE-0051', QtGui.QTextDocument.FindBackward)

(当然,如果您搜索 MESSAGE-0095,它不会将所选行放在顶部,因为视图不能向下滚动那么远)。