QWidget :: mousePressEvent () для двух виджетов одновременно

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

введите описание изображения здесь

0

Решение

Есть event->ignore()Так как A находится позади B, то, вероятно, A является родителем B (может быть, не прямым, но это не имеет значения, пока он находится вниз по дереву), так что если в конце B::mousePressEvent() вы event->ignore() тогда событие продолжит распространяться вниз и вызовет mousePressEvent() а также … в конце концов, если ничто иное не поглотит событие на пути.

Кроме того, так как предположительно mousePressEvent() просто вызывает некоторую функциональность, вы также можете сделать это вручную из обработчика событий B для A, все, что вам нужно, — это ссылка на него, тривиальная реализация. Возможно, вам придется сопоставить координаты с родителем, если они актуальны.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]