QCloseEvent
La classe QCloseEvent contient des paramètres qui décrivent un événement de fermeture. Plus d'informations...
#include <QCloseEvent>
Voir la position dans l'arbre des classes.
Héritage
Hérite de QEvent.
Description détaillée
La classe QCloseEvent contient des paramètres qui décrivent un événement de fermeture.
Les événements de fermeture sont envoyés aux widgets que l'utilisateur veut fermer, habituellement en cliquant sur « Fermer » de la barre des menus ou en cliquant sur le bouton X de la barre de titre. Ils sont aussi envoyés quand vous appelez QWidget::close() pour fermer un widget directement par le programme.
Les événements de fermeture contiennent un drapeau (flag) qui signale si le récepteur veut que le widget soit fermé ou pas. Quand un widget accepte l'événement de fermeture, il est caché (et détruit s'il a été créé avec le drapeau Qt::WA_DeleteOnClose). Si le widget refuse d'accepter l'événement de fermeture, rien ne se passe. (Sous X11 il est possible que le gestionnaire de fenêtres force la fermeture de la fenêtre ; mais, au moment de la rédaction de cette page, nous ne connaissons pas de gestionnaire de fenêtres qui fait cela).
Le gestionnaire d'événement QWidget::closeEvent() reçoit les événements de fermeture. Son implémentation par défaut accepte l'événement de fermeture. Si vous ne voulez pas que votre widget soit caché ou si vous voulez une gestion spéciale, vous devez réimplémenter le gestionnaire d'événement et utiliser la fonction ignore() sur cet événement.
La méthode closeEvent() dans l'exemple d'application montre un gestionnaire d'événements de fermeture qui demande de sauvegarder un document avant de fermer.
Si vous voulez que le widget soit supprimé pendant sa fermeture, créez-le avec le drapeau Qt:WA_DeleteOnClose. C'est très utile pour les fenêtres indépendantes de premier niveau dans une application multi-fenêtres.
Les QObject émettent le signal destroyed() quand ils sont détruits.
Si la dernière fenêtre de premier niveau est fermée, le signal QApplication::lastWindowClosed() est émis.
La fonction isAccepted() retourne true si le récepteur de l'événement a accepté de fermer le widget ; appelez accept() pour autoriser sa fermeture et appelez ignore() si le récepteur de cet événement ne veut pas que le widget soit fermé.
Voir également QWidget::close(), QWidget::hide(), QObject::destroyed(), QCoreApplication::exec(), QCoreApplication::quit() et QApplication::lastWindowClosed().
Fonctions membres
QCloseEvent::QCloseEvent ()
Construit un événement de fermeture.
Voir aussi accept().
Remerciements
Merci à Adrien Morel pour la traduction, ainsi qu'à Jonathan Courtois, Thibaut Cuvelier et Maxime Gault pour la relecture !