0
我正在使用PyQt及其綁定OpenGL的簡單3D查看器。我想,實現下面的用戶操作(如例如在SolidWorks):在PyQt中使用Qt.MidButton和Qt.MidButton + Qt.ControlModifier來旋轉和平移/ pan
- 平移/翻譯:使用組合
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