PyQt - 单击“退出”时显示MessageBox。按钮

时间:2016-04-25 15:45:54

标签: python pyqt messagebox

我有一个继承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的重新定义,所以当我单击按钮时,MessageBox会显示出来。但是当我确认我要退出时,我只是回到我的申请表。

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'方法在 init

中调用

1 个答案:

答案 0 :(得分:3)

致电self.close()closeEvent将由Qt

发出
def button_quit(self):
    self.status_bar.showMessage('Leaving Application')
    self.close()