'QMainWindow mouseDoubleClickEvent override not working

I'm using the below code to try and capture double clicks within the main window"

import sys
from PySide6 import QtCore
from PySide6.QtWidgets import (
    QApplication,
    QGridLayout,
    QMainWindow,
    QSplitter,
    QTreeView,
    QWidget,
)
from PySide6.QtWebEngineWidgets import QWebEngineView


class MainWindow(QMainWindow):

    def __init__(self):
        super().__init__()

        self.windowLayout = QGridLayout()
        self.splitter = QSplitter()

        self.webView = QWebEngineView()
        self.webView.setUrl(QtCore.QUrl("http://127.0.0.1:8080"))
        self.tree = QTreeView()
        self.splitter.addWidget(self.webView)
        self.splitter.addWidget(self.tree)
        self.windowLayout.addWidget(self.splitter)

        self.mainWidget = QWidget()
        self.mainWidget.setLayout(self.windowLayout)
        self.setCentralWidget(self.mainWidget)

    def mouseDoubleClickEvent(self, e):
        print('test')


if __name__ == "__main__":
    app = QApplication(sys.argv)

    window = MainWindow()
    window.resize(1500, 1000)
    window.show()

    app.exec()

And I get the following console output:

qt.pointer.dispatch: delivering touch release to same window QWindow(0x0) not QWidgetWindow(0x600003bb8e40, name="MainWindowClassWindow")
qt.pointer.dispatch: skipping QEventPoint(id=1 ts=0 pos=0,0 scn=749.346,451.159 gbl=749.346,451.159 Released ellipse=(1x1 ∡ 0) vel=0,0 press=-749.346,-451.159 last=-749.346,-451.159 Δ 749.346,451.159) : no target window

however, when I comment out self.setCentralWidget(self.mainWidget) I obviously don't see anything, but the double click triggers. Any suggestions?

EDIT: update to min repro, also note that clicking anywhere not inside the QWebEngineView correctly results in mouseDoubleClickEvent triggering. However, the above error results when I click in the QWebEngineView, and nothing happens when I click inside the QTreeView



Solution 1:[1]

As per musicamante's very useful comments (see original post), the solution I ended up using was

...
     self.tree.doubleClicked.connect(self.treeDoubleClicked)
...
def treeDoubleClicked(self, index):
     self.selectedFilepath = index.model().filePath(index)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 joshp