Я пытаюсь запустить два QWidget::mousePressEvent()
обработчики сразу. У меня есть два виджета, A и B.
B наследуется от QLabel
, От QWidget
, Я перегружен QWidget::mousePressEvent()
на них обоих. Виджет от Б становится QPoint
положение курсора и это работает.
Виджет получает эту информацию из класса B, но, к сожалению, только если я щелкаю где-то еще за пределами виджета B (в синей области).
Итак, что я должен сделать, чтобы бежать QWidget::mousePressEvent()
из виджета А если я нажму на коричневое пространство из виджета Б?
Есть event->ignore()
Так как A находится позади B, то, вероятно, A является родителем B (может быть, не прямым, но это не имеет значения, пока он находится вниз по дереву), так что если в конце B::mousePressEvent()
вы event->ignore()
тогда событие продолжит распространяться вниз и вызовет mousePressEvent()
а также … в конце концов, если ничто иное не поглотит событие на пути.
Кроме того, так как предположительно mousePressEvent()
просто вызывает некоторую функциональность, вы также можете сделать это вручную из обработчика событий B для A, все, что вам нужно, — это ссылка на него, тривиальная реализация. Возможно, вам придется сопоставить координаты с родителем, если они актуальны.
Других решений пока нет …