2017-07-18 3 views

Antwort

1

Nachdem ich verschiedene Lösungen ausprobiert hatte, benutzte ich MouseHandler, um diese Aufgabe zu beenden. Der Kern Codes unter:

Entity{ 
    id: root 
    property Camera camera; 
    MouseDevice { 
    id: mouseDevice 
    } 
    MouseHandler { 
    property point _lastPt; // 鼠标最后的位置 
    property real _pan;  // 相机沿y轴旋转角度 
    property real _tilt;  // 相机沿x轴旋转角度 
    on_PanChanged: root.camera.panAboutViewCenter(_pan); 
    on_TiltChanged: root.camera.tiltAboutViewCenter(_tilt); 

    sourceDevice: mouseDevice 
    onPressed: {_lastPt = Qt.point(mouse.x, mouse.y);} 
    onPositionChanged: mouseMove(mouse); 
    ... 
    function mouseMove(mouse){ 
     if (mouse.buttons == 1){ 
      _pan = -(mouse.x - _lastPt.x); 
      _tilt = (mouse.y - _lastPt.y); 
      _lastPt = Qt.point(mouse.x, mouse.y); 
     } 
    } 
} 

}

Verwandte Themen