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