私はかなりPyQtの新機能で、シグナル/スロットの設定に問題があります。PyQt5 - サブクラスでmousePressEventをキャプチャできません
Iは、その親を持つノードQWidget
から継承自己定義オブジェクト、Node
であるQWidget
、内部にある自体QTabWidget
あるQTreeView
ウィジェットを有します。
信号/スロットを介してモデルデータの変更を伴うQTableView
をトリガするためにノードをクリックできるようにします。
初期化子とここに示されているNode
でmousePressEvent()
を上書き:ツリーにNode
項目をクリックすると
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()
の仕組みと関係があると確信していますが、これを終日修正しようとしています。