複数のウィジェットがある領域内のどこでもマウスのクリックを検出しようとしています。このために、次のコードを使用しています。
custom_widget = CustomWidget()
custom_widget.mouse_pressed_signal.connect(self.on_custom_label_mouse_pressed)
main_layout_vbox.addWidget(custom_widget)
hbox = QtWidgets.QHBoxLayout()
custom_widget.setLayout(hbox)
# Adding several widgets to hbox_l6
class CustomWidget(QtWidgets.QWidget):
mouse_pressed_signal = QtCore.pyqtSignal(QtGui.QMouseEvent)
def __init__(self):
super().__init__()
def mousePressEvent(self, i_qmouseevent):
super(CustomWidget, self).mousePressEvent(i_qmouseevent)
logging.debug("======== CustomWidget - mousePressEvent ========")
self.mouse_pressed_signal.emit(i_qmouseevent)
問題
これは、子ウィジェットのいずれかをクリックすると機能しますが、問題があります。ウィジェット間(つまり、ウィジェットでカバーされていないレイアウトの領域)をクリックすると、キャプチャされません。hbox
mousePressEvent
質問
どうすればこの問題を解決できますか? (または、お勧めできる別のアプローチはありますか?) 重要なことは、custom_widget
/内のどこでもマウス クリックをキャプチャできることですhbox
(上記のコードを参照) 。