3

複数のウィジェットがある領域内のどこでもマウスのクリックを検出しようとしています。このために、次のコードを使用しています。

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)

問題

これは、子ウィジェットのいずれかをクリックすると機能しますが、問題があります。ウィジェット間(つまり、ウィジェットでカバーされていないレイアウトの領域)をクリックすると、キャプチャされません。hboxmousePressEvent

質問

どうすればこの問題を解決できますか? (または、お勧めできる別のアプローチはありますか?) 重要なことは、custom_widget/内のどこでもマウス クリックをキャプチャできることですhbox(上記のコードを参照) 。

4

1 に答える 1