2011-12-19 19 views
6

Mi chiedevo se è possibile ignorare/annullare uscire dall'applicazione basata su un determinato flag booleano impostato anche se l'utente dovesse fare clic sulla "X" rossa (pulsante Chiudi finestra).Qt application cancel exit event

Sono un programmatore C# e so che è piuttosto facile da fare per le applicazioni .net ma sono abbastanza nuovo nel framework qt e la ricerca su google non ha ottenuto risultati rilevanti.

Grazie,

risposta

14

la documentazione Qt descrive questo specifico use-case about asking permission to close in their examples.

Se si sottoclasse QMainWindow ad esempio e si reimplementa la funzione closeEvent, è possibile fornire all'app un comportamento personalizzato quando qualcuno tenta di chiuderla. Ad esempio:

void MainWindow::closeEvent(QCloseEvent *event) 
{ 
    if (maybeSave()) { 
     writeSettings(); 
     event->accept(); 
    } else { 
     event->ignore(); 
    } 
} 
+1

Per migliorare la risposta è possibile fornire il codice di esempio oltre al collegamento all'articolo. Le migliori risposte hanno sempre incluso la fonte! –