PyQt - 单击'Quit'按钮时显示消息框



我有一个应用程序,它继承了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()

最新更新