使用QWebengineView中的findText()在htmlpage中查找和选择字符串



我在使用QWebengineView的findText((时遇到问题。我想构建一个程序,在那里我可以搜索HTML页面中的特定单词,标记它们,并使用QWebengineview/Page的selectedText((方法提取它们。

findText((可以很好地搜索页面并标记页面上所有出现的单词。单词被找到并且回调函数显示"0";TRUE";对于回叫";找到";。但是当我调用selectedText((时,字符串总是空的,所以页面上没有选择任何内容。也许我用错了回调函数?

class App(QWidget):
def __init__(self):
'''Initializer of Main App'''
super(App, self).__init__()
self.resize(1920, 1080)
self.view = QtWebEngineWidgets.QWebEngineView(self)
self.view.resize(1920, 1080)
self.url = QUrl('https://de.wikipedia.org/wiki/Michael_Phelps')
self.view.load(self.url)
self.button = QPushButton(self)
self.button.clicked.connect(self.searchPage)

self.button2 = QPushButton(self)
self.button2.move(40,40)

def searchPage(self):
flags = QWebEnginePage.FindFlags(0)
self.view.findText("Michael", flags ,self.callback)

def callback(self, found):
print(found)
print(self.view.page().selectedText())

通过findText()函数找到的文本被突出显示,它是未选中的,这就是selectedText()方法返回空字符串的原因。另一方面,findText()方法理论上会返回高亮显示的文本,该文本与您在开始搜索时使用的文本相同,因此期望它不同是没有用的,因此回调只返回一个布尔值,指示是否存在与该单词匹配的元素。

最新更新