Python PyQt5-无法捕获子类中的mousePressEvent

Python PyQt5-无法捕获子类中的mousePressEvent,python,qt,user-interface,pyqt5,Python,Qt,User Interface,Pyqt5,我是PyQt的新手,在设置信号/插槽时遇到问题 我有一个QTreeView小部件,它的父部件是QTabWidget,它本身位于QWidget内部,它的节点是一个自定义对象,节点,它继承自QWidget 我想启用单击节点,通过信号/插槽触发附带的QTableView中模型数据的更改 初始化器和重写节点中的mousePressEvent(),如下所示: class Node(QtWidgets.QWidget):

我是PyQt的新手,在设置信号/插槽时遇到问题

我有一个
QTreeView
小部件,它的父部件是
QTabWidget
,它本身位于
QWidget
内部,它的节点是一个自定义对象,
节点
,它继承自
QWidget

我想启用单击节点,通过信号/插槽触发附带的
QTableView
中模型数据的更改

初始化器和重写
节点中的
mousePressEvent()
,如下所示:

class Node(QtWidgets.QWidget):                                               
     def __init__(self, name, parent=None):                                    
         super(Node, self).__init__(parent)                                     
         self._name = name                                                    
         self._children = []                                                    
         self._parent = parent                                                 

         if parent is not None:                                                
             parent.addChild(self)                                               

     trigger = QtCore.pyqtSignal(int, int)                                      

     def mousePressEvent(self, event):                                          
         event.accept()                                                          
         print("Node clicked!")
         self.trigger.emit() # this would have variables...
单击树中的
节点
项时,未捕获鼠标事件


我确信这与我如何设置小部件和/或
mousePressEvent()
的工作方式有关,但我整天都在毫无乐趣地试图解决这个问题

我在这里走错了路。访问用户定义的
QTreeView
项的正确方法是使用
QModelIndex.internalPointer()
方法和
qabstractemview.clicked()
信号

例如


我走错了路。访问用户定义的
QTreeView
项的正确方法是使用
QModelIndex.internalPointer()
方法和
qabstractemview.clicked()
信号

例如

self.selectionTree.clicked.connect(self.get_single_return_data)

# ...

def get_single_return_data(self, index):
    print("Signal triggered", index.internalPointer())
    p = index.internalPointer()
    # do something with p