2016-08-31 6 views
0

Qt5에서 이와 같이 QML로 처리 할 수 ​​있습니다.Qt4.8에서 마우스 휠 이벤트 처리

MouseArea { 
    onWheel: { 
     if (wheel.modifiers & Qt.ControlModifier) { 
      adjustZoom(wheel.angleDelta.y/120); 
     } 
    } 
} 

어떻게 Qt4.8에서 같은 결과를 얻을 수 있습니까?

답변

1

나는 자전거를 재발 명하고있는 것처럼 보이지만 지금은 어떻게 작동하는지 여기에 있습니다.

wheelEvent를 포착하고 새로운 신호를 보내는 새로운 QWidget이 있습니다.

void WheelEventCarrier::wheelEvent(QWheelEvent *event) 
{ 
    emit sendWheelEvent(event->delta()/120); 
} 

나는 새로운 신호를 QML로 정의하고 그것을 ibid로 처리한다.

내 모든 UI 주위에 내 위젯을 래핑하고 두 신호를 연결합니다.

WheelEventCarrier carrier; 
UI.setParent(&carrier); 

QObject::connect(&carrier, 
        SIGNAL(sendWheelEvent(int)), 
        viewer.rootObject(), 
        SIGNAL(wheelEvent(int))); 

carrier.show(); 

희망 사항을 통해 더 나은 해결책을 제시 할 수 있습니다.

+0

또는 새 QDeclarative 항목을 만들고 'wheelEvent (QGraphicsSceneWheelEvent * event)'이벤트를 catch 할 수 있습니다. –