2011-12-19 8 views
6

Zastanawiałem się, czy można zignorować/anulować wyjście z aplikacji na podstawie określonej flagi boolean, nawet jeśli użytkownik kliknął czerwony "X" (przycisk Zamknij okno).Aplikacja Qt anulować zdarzenie wyjścia

Jestem programistą C# i wiem, że to całkiem łatwe do zrobienia dla aplikacji .net, ale jestem całkiem nowy w qt framework, a wyszukiwanie google nie przyniosło żadnych trafnych wyników.

Dzięki

Odpowiedz

14

dokumentacji Qt opisuje ten specyficzny use-case about asking permission to close in their examples.

Jeśli na przykład masz podklasę QMainWindow i ponownie zaimplementujesz funkcję closeEvent, możesz udostępnić swojej aplikacji niestandardowe zachowanie, gdy ktoś spróbuje ją zamknąć. Na przykład:

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

Aby poprawić odpowiedź, możesz podać przykładowy kod oraz link do artykułu. Najlepsze odpowiedzi zawsze zawierają źródło! –

Powiązane problemy