restant à modifier avec le message TODO ; eric6 et d'autres EDI proposent une
fonction pour retrouver aisément ces commentaires et sauter directement dans la
partie de code marquée. Dans eric6, ceci est appelé le Visualisateur de tâches,
invoqué avec Alt+Maj+T.
Passons à présent à la seconde méthode slot évoquée plus haut, qui concerne l'action
menu Quitter. Pour éviter une sortie par erreur, il est classique de demander une
confirmation à l'utilisateur. Nous pourrions facilement ajouter cela dans la méthode
on_actionQuitter_triggered , c'est-à-dire lorsque l'utilisateur ferme l'application
par le bouton Quitter du menu. Il est cependant plus intelligent de procéder autrement
car ce garde-fou serait bienvenu dans tous les cas, qu'on ferme la fenêtre via le menu
de l'application, via le menu système ou via la petite croix. Pour faire cela, nous
surchargeons la méthode closeEvent appelée automatiquement dès lors que la sortie
de l'application est demandée, peu importe le mécanisme qui déclenche cette
fermeture ; cette méthode passe un événement en argument que la méthode devra choisir
soit d'accepter (on quitte effectivement), soit d'ignorer (la sortie est abandonnée) en
invoquant respectivement les méthodes accept() ou ignore().
Ces quelques explications devraient vous aider à comprendre les méthodes qui suivent,
à ajouter à notre classe MainWindowBiblio :
# -*- coding: utf-8 -*# main_window_biblio.py
…
class MainWindowBiblio(QMainWindow,Ui_MainWindowBiblio):
…
@pyqtSlot()
def on_actionQuitter_triggered(self):
self.close()
def closeEvent(self,event):
messageConfirmation = "Êtes-vous sûr de vouloir quitter
BibliApp ?"
reponse = QMessageBox.question(self,"Confirmation",
messageConfirmation,QMessageBox.Yes,QMessageBox.No)
if reponse == QMessageBox.Yes:
event.accept()
else:
event.ignore()
107
Précédent

- 108/494

Suivant