在PyQt应用程序中退出提示

问题描述:

有什么办法可以让用户退出用Python编写的gui程序吗?在PyQt应用程序中退出提示

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

我正在使用PyQt。

+0

看看[PyQt4教程的这一部分](http://zetcode.com/tutorials/pyqt4/firstprograms/)中的“消息框”部分。 *(来自[las3rjock](http://stackoverflow.com/users/94732/las3rjock)的答案)* – 2015-04-07 20:03:35

+0

请看[PyQt4教程的这一部分](http://zetcode.com)的“消息框”部分/教程/ PyQt4的/ firstprograms /)。 – las3rjock 2009-09-12 10:34:58

是的。您需要重写表示应用程序的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 page的链接,特别是official reference,以了解更多有关事件以及如何处理它们的信息。

+0

哦,非常感谢! – 2009-09-12 19:19:25

+2

如何将“是”和“否”设置为其他语言?如果我的信息是,例如用德语,我想要“ja”和“nicht”而不是“是”和“否”。 – Aleksandar 2013-01-09 14:48:38

+0

开箱即用(无需任何修改)! – 2013-08-06 09:20:06