我在 Qt 4.7 中使用 PySide,并且在我的 QMainWindow 中遇到 keyReleaseEvent 问题。这是代码:
def keyReleaseEvent(self, event):
if event.key() == QtCore.Qt.Key_Alt:
print 'Alt Key Released'
if self.pointerTypeGroup.checkedId() != self.scene.HandDrag:
print "Disabling Drag"
self.pointerGroupClicked(self.pointerTypeGroup.checkedId())
#event.accept()
#super(MainWindow, self).keyPressEvent(event)
这仅适用于所有其他密钥版本。第一个被忽略,第二个有效,第三个失败,第四个有效,依此类推。是否实现 keyPressEvent、是否放入 event.accept() 或之后是否调用基本实现都无关紧要。这些对行为没有影响。
我正在使用它在 QGraphicsView 中制作可拖动的地图。如果我实现 keyPressEvent 并拖动地图,只要我在每次按键之间操作地图,就永远不会调用 keyReleaseEvent。
有什么想法吗?