在PyQt应用程序中退出时提示

时间:2009-09-12 10:06:05

标签: python pyqt exit

有没有办法提示用户退出用Python编写的gui程序?

类似“你确定要退出程序吗?”

我正在使用PyQt。

1 个答案:

答案 0 :(得分:50)

是。您需要覆盖表示应用程序的QWidget的默认关闭行为,以便它不会立即接受该事件。你想要的基本结构是这样的:

def closeEvent(self, event):

    quit_msg = "Are you sure you want to exit the program?"
    reply = QtGui.QMessageBox.question(self, 'Message', 
                     quit_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)

    if reply == QtGui.QMessageBox.Yes:
        event.accept()
    else:
        event.ignore()

tutorial提到的PyQt las3rjock对此进行了很好的讨论。另请查看来自Python.org的PyQt page的链接,特别是official reference,以了解有关事件及其处理方式的更多信息。