0
PyQt 및 OpenGL에 대한 바인딩을 사용하여 간단한 3D 뷰어에서 작업하고 있습니다. 나는 (솔리드 웍스 예를 들어 같은) 다음 사용자 동작을 구현하고 싶습니다 :PyQt의 Qt.MidButton 및 Qt.MidButton + Qt.ControlModifier를 사용하여 회전 및 이동/이동
- 팬/번역 : 조합
ctrl
+middle mouse button (pressed)
- 회전 :
middle mouse button (pressed)
및 이동 마우스를. 코드는 다음과 같습니다 내가 가진
def mousePressEvent(self, event):
self.last_pos = event.posF()
def mouseMoveEvent(self, event):
dxy = event.posF() - self.last_pos
dx = dxy.x()/self.width()
dy = dxy.y()/self.height()
# rotate -
if event.buttons() & Qt.MidButton:
self.camera.rotate(dx, dy)
# translate/pan
elif (event.buttons() & Qt.MidButton) and (event.modifiers() & Qt.ControlModifier):
self.camera.pan(dx, dy)
# zoom
self.last_pos = event.posF()
문제는 그 내가 누를 때 ctrl
다음 middle mouse button
모두 (self.camera.rotate(dx, dy)
및 self.camera.pan(dx, dy)
) 기능이 실행되지만, 난 그냥 객체 (들)을 번역하고 싶습니다. 번역 및 회전이 원하는 키 조합을 사용하여 코드를 수정할 수있는 방법이 있는지 묻습니다. 지금은 아이디어가 없습니다.
문제가 해결되었습니다. 감사. – avstenit