@benyeyeye use focusProxy():
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
# or
# from PySide2 import QtCore, QtWidgets, QtWebEngineWidgets
class BetterWebView(QtWebEngineWidgets.QWebEngineView):
def __init__(self):
super().__init__()
self.load(QtCore.QUrl())
self.focusProxy().installEventFilter(self)
def eventFilter(self, source, event):
if (
self.focusProxy() is source
and event.type() == QtCore.QEvent.MouseButtonPress
):
print("ok")
return super().eventFilter(source, event)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
view = BetterWebView()
view.load(QtCore.QUrl("https://www.qt.io"))
view.show()
sys.exit(app.exec_())