我在使用QWebengineView的findText()时遇到问题。 我想构建一个程序,在这个程序中,我可以在HTML页面中搜索特定的单词,标记它们,并使用QWebengineview/Page的selectedText()方法提取它们
findText()可以很好地搜索页面并标记页面上出现的所有单词。单词被找到,回调函数显示回调“found”的“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())
通过^{} 函数找到的文本突出显示,未选中,这就是^{} 方法返回空字符串的原因。另一方面,^{} 方法理论上会返回高亮显示的文本,该文本与启动搜索时使用的文本相同,因此期望它不同是没有用的,因此回调只返回一个布尔值,指示是否存在与单词匹配的元素
相关问题 更多 >
编程相关推荐