同一个类中的两个keyPressEvent(Pyqt5)

时间:2017-12-07 21:04:26

标签: python-3.x qt pyqt5 qt-designer

你好 我正在使用Pyqt5& QT Designer创建GUI。我想在一个类中使用两个keyPressEvent。其中一个退出GUI,另一个隐藏按钮。问题是keyPressEvent互相覆盖,以便它们不能一起预制

部分代码:

....
self.pushButton = MYButton(self.centralwidget)
....

class MainWindow(QMainWindow, Ui_MainWindow):    

    def __init__(self, parent=None):
            QMainWindow.__init__(self, parent=parent)
            self.setupUi(self)
            self.initMe()


        def initMe(self):
            self.pushButton.setToolTip('This is a <u> Button </u>')
            self.pushButton.clicked.connect(self.pressed) 
            QToolTip.setFont(QFont('Arial',7))
            self.setToolTip('Das ist ein Fenster!')
            self.pushButton_2.clicked.connect(self.close)

        def druecken(self): #1
            Sender = self.sender()
            Sender.move(50,50)
            print(Sender.text()+'the Button is already pressed')

        def keyPressEvent(self, e):
            if e.key() == Qt.Key_W:
                self.close()


class MYButton(QPushButton):
      def keyPressEvent(self, e):
          if e.key() == Qt.Key_Escape:
              self.close()

因此,例如我必须首先按Escape键隐藏按钮然后我不能按W键关闭GUI。但是,当我这样做时,它不起作用,因为MYButton函数仍在运行并且其keyPressEvent被激活。那么我如何让两者一起跑?

0 个答案:

没有答案