WebEnginePage::acceptNavigationRequest接收不到网页a标签的点击事件
时间: 2024-01-06 07:03:30 浏览: 33
在Qt的WebEngine模块中,`WebEnginePage::acceptNavigationRequest`函数是用来处理导航请求的,但是它并不能直接接收网页a标签的点击事件。
如果你想要捕获网页a标签的点击事件,可以使用`WebEnginePage::createWindow`函数来实现。
以下是一个简单的示例代码:
```python
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
class MyWebEnginePage(QWebEnginePage):
def createWindow(self, type):
# 获取当前点击的链接
url = self.url().resolved(self.lastHoveredLinkUrl())
print('a标签点击事件:', url)
app = QApplication([])
view = QWebEngineView()
page = MyWebEnginePage(view)
view.setPage(page)
view.load(QUrl('https://www.baidu.com'))
view.show()
app.exec_()
```
在这个代码中,我们自定义了一个`MyWebEnginePage`类,继承自`QWebEnginePage`类,并重写了`createWindow`方法,当用户点击a标签时,会触发该方法,我们可以在这里编写我们的逻辑代码。然后我们创建了一个QWebEngineView实例,并将其page设置为我们自定义的`MyWebEnginePage`类的实例。最后,我们加载了百度网站,并显示了QWebEngineView。
当你运行这个代码后,在QWebEngineView中点击任何一个a标签时,都会触发`createWindow`方法,并将a标签的url打印出来。