PyQt应用中的退出提示

26

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

例如:"确定要退出程序吗?"

我正在使用PyQt。


请查看PyQt4教程的此部分中的“消息框” - las3rjock
请查看PyQt4教程的此部分的“消息框”部分。*(来自las3rjock的回答)* - Artjom B.
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()

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


5
如何将“yes”和“no”设置为其他语言?如果我的消息是德语,我希望使用“ja”和“nicht”代替“yes”和“no”。 - Aleksandar
直接使用,无需任何修改,对我很有效! - Mohamad Fakih
2
在Qt5中,使用QtWidgets.QMessageBox而不是QtGui.QMessageBox。 - Hill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接