2009-09-12 7 views
17

Y at-il un moyen de persuader l'utilisateur de quitter le programme gui écrit en Python?Invite à la sortie dans l'application PyQt

Quelque chose comme "Êtes-vous sûr de vouloir quitter le programme?"

J'utilise PyQt.

+0

Regardez la section "Message Box" de [cette partie du tutoriel PyQt4] (http://zetcode.com/tutorials/pyqt4/firstprograms/). * (réponse de [las3rjock] (http://stackoverflow.com/users/94732/las3rjock)) * –

+0

Regardez la section "Message Box" de [cette partie du tutoriel PyQt4] (http://zetcode.com/tutorials/pyqt4/premiersprogrammes /). – las3rjock

Répondre

45

Oui. Vous devez remplacer le comportement de fermeture par défaut du QWidget représentant votre application afin qu'il n'accepte pas immédiatement l'événement. La structure de base que vous voulez est quelque chose comme ceci:

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() 

Le PyQt tutorial mentionné par las3rjock a une belle discussion sur ce sujet. Consultez également les liens du PyQt page sur Python.org, en particulier le official reference, pour en savoir plus sur les événements et comment les gérer.

+0

Oh, merci beaucoup! –

+2

Comment définir "oui" et "non" dans une autre langue? Si mon message est, par exemple en allemand, je veux "ja" et "nicht" au lieu de "oui" et "non". – Aleksandar

+0

travaillé pour moi hors de la boîte (sans aucune modification nécessaire)! –