2009-09-12 11 views
17

Czy jest jakiś sposób, aby zachęcić użytkownika do wyjścia z programu GUI napisanego w Pythonie?Pytanie o wyjście w aplikacji PyQt

Coś jak "Czy na pewno chcesz wyjść z programu?"

Używam PyQt.

+0

Zobacz sekcję "Message Box" w [tej części samouczka PyQt4] (http://zetcode.com/tutorials/pyqt4/firstprograms/). * (odpowiedź od [las3rjock] (http://stackoverflow.com/users/94732/las3rjock)) * –

+0

Zobacz sekcję "Message Box" [tej części tutoriala PyQt4] (http://zetcode.com/samouczki/pyqt4/firstprograms /). – las3rjock

Odpowiedz

45

Tak. Musisz zastąpić domyślne zachowanie zamknięcia QWidget reprezentujące aplikację, aby nie od razu zaakceptować zdarzenia. Podstawowa struktura chcesz coś takiego:

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 tutorial wspomniał las3rjock ma ładny dyskusję o tym. Sprawdź również linki od strony PyQt page na Python.org, w szczególności official reference, aby dowiedzieć się więcej o zdarzeniach i jak sobie z nimi radzić.

+0

Ohh, wielkie dzięki! –

+2

Jak ustawić "tak" i "nie", aby znaleźć się w jakimś innym języku? Jeśli moja wiadomość jest, na przykład w języku niemieckim, chcę "ja" i "nicht" zamiast "tak" i "nie". – Aleksandar

+0

pracował dla mnie po wyjęciu z pudełka (bez żadnych modyfikacji)! –