Я работаю над приложением Qt, и у меня проблема с получением событий мыши там, где я их хочу.
Вот высокоуровневое представление о том, что у меня есть (на каждом уровне происходят другие вещи, которые диктуют необходимость представлений и сцен):
+----------------
| App Window -- QMainWindow
| +--------------
| | View -- QGraphicsView --- Grabbing mouse events here for Mode 1
| | +------------
| | | Scene -- QGraphicsScene
| | | +----------
| | | | Image -- QGraphicsPixmap --- Want to grab mouse events here for Mode 2
| | | |
В режиме 1 я получаю событие mousePressEvent на уровне View . В режиме 2 я бы хотел получать события мыши на уровне Image . До того, как я перегрузил mousePressEvent в классе View, я смог получить все события в Image . Теперь, когда я снимаю на Просмотр Я не могу получить события мыши в изображении. Изображение является приватным в Сцена , и я не хочу это раскрывать.
Здесь нет наследства; каждый элемент является объектом, созданным объектом над ним.
Читая этот вопрос Qt - передавать события нескольким объектам? создает впечатление, что я хочу захватить события мыши на уровне Image и позволить им вернуться обратно; однако мне все равно нужно создать mousePressEvent в View , и я вернусь туда, где я нахожусь.
Есть ли способ включить / выключить обработку событий во время выполнения и убедиться, что они достигают более низких уровней? Или есть способ перенаправить события на подобъект?