WebEnginePage::acceptNavigationRequest鼠标左键点击事件
时间: 2024-01-06 08:03:30 浏览: 215
在重写`acceptNavigationRequest`方法时,我们可以检查导航类型参数`_type`的值,判断用户是通过什么方式触发了导航事件。如果用户通过鼠标左键点击了链接,它的值应该是`QWebEnginePage.NavigationTypeLinkClicked`。因此,我们可以像下面这样来处理鼠标左键点击事件:
```python
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineView
class MyWebEnginePage(QWebEnginePage):
def acceptNavigationRequest(self, url, _type, isMainFrame):
if _type == QWebEnginePage.NavigationTypeLinkClicked:
print("鼠标左键点击链接:", url)
# 阻止QWebEngineView默认的行为
self.load(url)
return False
return super().acceptNavigationRequest(url, _type, isMainFrame)
if __name__ == '__main__':
from PyQt5.QtWidgets import QApplication
import sys
app = QApplication(sys.argv)
view = QWebEngineView()
page = MyWebEnginePage()
view.setPage(page)
view.load(QUrl('https://www.baidu.com'))
view.show()
sys.exit(app.exec_())
```
在这个例子中,当用户通过鼠标左键点击一个链接时,程序会输出链接的URL,并通过调用`self.load(url)`来显示链接的内容。注意,我们返回了`False`来阻止QWebEngineView默认的行为,否则它会自动打开链接。
阅读全文