Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python keyReleaseEvent忽略PySide/Qt中的其他每一次按键释放_Python_Qt_Qt4_Pyside - Fatal编程技术网

Python keyReleaseEvent忽略PySide/Qt中的其他每一次按键释放

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

我在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:
            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
如需参考,请查看。希望这有帮助

我一直受到