pyside 按键事件无效

pyside key event invalid

我正在尝试编写一个图像显示函数,实例化以下class并在我双击图像时呈现图像,我想通过按ESC关闭window,但它似乎没有用。 keyPressEvent 函数是在复制之前编写的。它以前有效,但在这里不起作用。我很难过。

class ImageLabel(QtGui.QWidget):
def __init__(self, imagePath, parent=None):
    super(ImageLabel, self).__init__(parent)
    self.imagePath = imagePath
    self.initUI()

def initUI(self):
    from PIL import Image
    pic_size = (Image.open(self.imagePath).width, Image.open(self.imagePath).height)

    self.image_Label = QtGui.QLabel()
    self.image_Label.setWindowIcon(QtGui.QIcon(fileconfig.MAIN_ICON))
    self.image_Label.resize(pic_size[0] + 50, pic_size[1] + 50)
    self.image_Label.setWindowTitle(os.path.basename(self.imagePath))
    self.image_Label.setWindowModality(QtCore.Qt.ApplicationModal)
    self.image_Label.setPixmap(QtGui.QPixmap(self.imagePath))
    self.image_Label.setAlignment(QtCore.Qt.AlignCenter)
    self.image_Label.show()

def keyPressEvent(self, event):
    key = event.key()
    if key == QtCore.Qt.Key_Escape:
        self.close()

这是工作代码:

from PySide import QtGui,QtCore
import sys
import os
class ImageLabel(QtGui.QWidget):
    def __init__(self, imagePath, parent=None):
        super(ImageLabel, self).__init__(parent)
        self.imagePath = imagePath
        self.initUI()

    def initUI(self):

        from PIL import Image
        pic_size = (Image.open(self.imagePath).width, 
        Image.open(self.imagePath).height)

        self.image_Label = QtGui.QLabel()
        self.image_Label.setWindowIcon(QtGui.QIcon(fileconfig.MAIN_ICON))
        self.image_Label.resize(pic_size[0] + 50, pic_size[1] + 50)
        self.image_Label.setWindowTitle(os.path.basename(self.imagePath))
        self.image_Label.setWindowModality(QtCore.Qt.ApplicationModal)
        self.image_Label.setPixmap(QtGui.QPixmap(self.imagePath))
        self.image_Label.setAlignment(QtCore.Qt.AlignCenter)
        # self.image_Label.show()

    def keyPressEvent(self, event):
        key = event.key()
        if key == QtCore.Qt.Key_Escape:
            self.close()

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)
    il = ImageLabel('usr/image/img.png')
    il.show()
    sys.exit(app.exec_())

我刚刚评论了一行 self.image_Label.show(),对我来说一切正常