Python keyReleaseEvent忽略PySide/Qt中的其他每一次按键释放
我在Qt4.7中使用PySide,并且我的QMainWindow中的keyReleaseEvent有问题。代码如下:Python keyReleaseEvent忽略PySide/Qt中的其他每一次按键释放,python,qt,qt4,pyside,Python,Qt,Qt4,Pyside,我在Qt4.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: pr
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
知道发生了什么吗?我突然意识到Alt键是一个修改键,它由
event.modifiers()
方法识别。选中此项:
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_O and ( event.modifiers() & QtCore.Qt.ALT ):
print 'yeah' # Or your actual action code
如需参考,请查看。希望这有帮助
我一直受到