2009-09-12 2 views
17

Esiste un modo per consentire all'utente di uscire dal programma gui scritto in Python?Richiesta all'uscita nell'applicazione PyQt

Qualcosa del tipo "Sei sicuro di voler uscire dal programma?"

Sto usando PyQt.

+0

Guarda la sezione "Message Box" di [questa parte del tutorial PyQt4] (http://zetcode.com/tutorials/pyqt4/firstprograms/). * (risposta da [las3rjock] (http://stackoverflow.com/users/94732/las3rjock)) * –

+0

Guarda la sezione "Message Box" di [questa parte del tutorial PyQt4] (http://zetcode.com)/tutorial/PyQt4/firstprograms /). – las3rjock

risposta

45

Sì. È necessario sovrascrivere il comportamento di chiusura predefinito di QWidget che rappresenta l'applicazione in modo che non accetti immediatamente l'evento. La struttura di base che si desidera è qualcosa di simile:

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

Il PyQt tutorial citato da las3rjock ha una bella discussione di questo. Controlla anche i link da PyQt page su Python.org, in particolare lo official reference, per saperne di più sugli eventi e su come gestirli.

+0

Ohh, grazie mille! –

+2

Come impostare "sì" e "no" in un'altra lingua? Se il mio messaggio è, per esempio in tedesco, voglio "ja" e "nicht" invece di "sì" e "no". – Aleksandar

+0

ha funzionato per me subito dopo l'installazione (senza alcuna modifica necessaria)! –