如何在 QTextBrowser 中居中选定文本

Posted

技术标签:

【中文标题】如何在 QTextBrowser 中居中选定文本【英文标题】:How to to center selected text in QTextBrowser 【发布时间】:2017-01-07 01:30:44 【问题描述】:

下面发布的代码创建了QTextBrowser 窗口,其中填充了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,然后选择或突出显示它,然后滚动到它,使 selected-highlightet 行位于QTextBrowser 窗口的顶部边缘,所以结果如下所示:

如何实现?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于如何在 QTextBrowser 中居中选定文本的主要内容,如果未能解决你的问题,请参考以下文章

QTextBrowser / C++ 附加可点击文本

QT:如何在点击事件上展开/折叠文本(qtextbrowser,qwebview,...)

如何在 QTextBrowser (Html) 中设置文本颜色? (PyQt)

QTextBrowser:如何突出显示单击的行

在 QTextBrowser 中选择文本

在更新的 qtextbrowser 中读取特定文本