我有一个应用程序,它继承了QtGui.QMainWindow,并重新定义了closeEvent以显示MessageBox。
def closeEvent(self, event):
reply = QtGui.QMessageBox.question(
self,
'Quit',
'Are you sure you want to quit?',
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
QtGui.QMessageBox.Yes)
if reply == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
当我单击窗口中的"X"时,此消息框就会显示。该应用程序还有一个"退出"按钮。我尝试将按钮连接到 closeEvent 的重新定义,因此当我单击该按钮时,将显示消息框。但是当我确认我想退出时,我只是回到我的应用程序。
def create_components(self):
self.button = QtGui.QPushButton('Quit')
self.button.clicked.connect(self.button_quit)
def button_quit(self):
self.status_bar.showMessage('Leaving Application')
# QtCore.QCoreApplication.instance().quit()
self.closeEvent(QtGui.QCloseEvent())
在初始化中调用"create_components"方法。
调用self.close()
,Qt将发出closeEvent
def button_quit(self):
self.status_bar.showMessage('Leaving Application')
self.close()