Я использую каркас Qt Graphics View для создания сцены и прикрепления нескольких видов к одной и той же сцене, где эти виды визуализируют 3D-сцену с открытым сценографом в качестве фона, а 2D-рисунки являются наложениями.
Я пытаюсь перехватить события мыши / ключа в моем классе OverlayViewport (наследует QGraphicsView) и соответственно перемещаться по 3D-сцене. Ниже приведен пример обработчика события:
void OverlayViewport::mouseMoveEvent( QMouseEvent * event )
{
QGraphicsView::mouseMoveEvent(event);
if (event->isAccepted())
{
return;
}
3D_Scene_Stuff_Code();
}
Но события всегда принимаются, поэтому мой код материала 3D-сцены никогда не выполняется. Если я уберу проверку isAccepted (), мой код всегда будет выполняться.
То, чего я хочу достичь, это позволить сцене делать свои вещи, такие как выделение, перетаскивание и, если она ничего не делает (не принимает событие), делать мои 3D-вещи.
Итак, вот мои вопросы:
1 - Я здесь не по тому пути?
2 - Должен ли я пересылать события на сцену, к которой прикреплен вид, и делать свои вещи, если событие не принято сценой?
3 - Если нет 2, как мне поступить?
С наилучшими пожеланиями.