Я пытаюсь обнаружить щелчки мыши в любом месте области с несколькими виджетами. Для этого я использую следующий код:
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
(см. Код выше)