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

26 投票
1 回答
37125 浏览
提问于 2025-04-15 14:16

有没有办法让用户在使用用Python写的图形界面程序时退出呢?

比如说弹出一个提示:“你确定要退出程序吗?”

我正在使用PyQt这个工具。

1 个回答

62

没错。你需要重写代表你应用程序的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()

在PyQt的教程中,las3rjock提到的内容对此有很好的讨论。此外,还可以查看Python.org上的PyQt页面中的链接,特别是官方参考,以了解更多关于事件及其处理方式的信息。

撰写回答