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)
これは、他のすべてのキー リリースでのみ機能します。1 つ目は無視され、2 つ目は機能し、3 つ目は失敗し、4 つ目は機能し、というように続きます。keyPressEvent を実装するかどうか、event.accept() を配置するかどうか、または後で基本実装を呼び出すかどうかは問題ではありません。それらは動作に影響を与えません。
これを使用して、QGraphicsView でマップをドラッグ可能にしています。keyPressEvent を実装してマップをドラッグすると、キーを押すたびにマップを操作する限り、keyReleaseEvent は呼び出されません。
何が起こっているのですか?