QTreeWidgetでマウスクリックが発生しないようです。私が試してみました...
- ... mousePressEventをオーバーライドしますが、まったく実行されません。メッセージを記録することすらありません。
- ...イベントファイラーを使用します。マウスクリック以外のすべてで機能します。
- ...デリゲートを使用します。彼らのエディタイベントは正常に機能しますが、アイテムを超えた場合にのみ、十分ではありません
- ...すべてがレイアウトに追加されていることを確認します。QTCreatorを使用し、出力はlayout.addWidget()を使用しています。メインウィンドウのレイアウトにウィジェットインスタンスも追加しています。
答えを使用して、ウィジェットをQTreeWidgetのイベントフィルターとして次のように登録することができました。
# In __init___
# self.tree is the QTreeWidget
self.tree.viewport().installEventFilter(self)
def eventFilter(self, target, event):
"""
This widget is an event filter for the tree, so this function is triggered
automatically
"""
# Print on right-click
if (event.type() == QEvent.MouseButtonPress and
event.button() == Qt.RightButton):
print("Right Click")
# Don't block/accept the event
return False