你好 我正在使用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被激活。那么我如何让两者一起跑?