4. Gestion des événements
Il reste à présent à compléter l'application pour gérer effectivement notre bibliothèque,
en réagissant à l'activation des boutons (ajout, modification, suppression) et des actions
du menu (ouvrir/enregistrer un fichier).
On va procéder en deux temps, en suivant le canevas MVD :
1. ajouter des méthodes sur notre modèle (classe ModeleTableBiblio), pour
ajouter/supprimer/modifier un livre et sauvegarder/lire nos données sur fichier ;
2. ajouter des méthodes dans la fenêtre principale (classe MainWindowBiblio), pour
réagir aux événements en invoquant les méthodes précitées du modèle.
Commençons par enrichir notre classe ModeleTableBiblio.
Choix du format de fichier
Pour enregistrer notre bibliothèque sur fichier, nous avons choisi le format JSON.
Ceci est juste un choix pragmatique, sachant que ce format est portable, qu'il permet
de sérialiser facilement des structures de données simples et qu'il est supporté via
le module standard Python json. JSON sera présenté plus en détail au chapitre
Présentation de JavaScript, Section 5, Structures de données. Alternativement, on
aurait pu choisir par exemple :
le format XML, supporté par le paquet xml de Python — standard, ouvert mais
verbeux et plus long à coder ;
le format CSV (comma separated values), supporté par le module csv de
Python — simple mais… attention à bien choisir le séparateur pour qu'il soit
absent des données (la virgule n'est certainement pas le bon choix !) ;
le format pickle défini par le module Python pickle — capable de représenter
des structures de données plus complexes, mais qui est non standard en dehors
de Python.
Note > Signalons que, au chapitre Accès à une base de données, nous verrons par
ailleurs comment utiliser une base de données au lieu d'un fichier.
119
Il reste à présent à compléter l'application pour gérer effectivement notre bibliothèque,
en réagissant à l'activation des boutons (ajout, modification, suppression) et des actions
du menu (ouvrir/enregistrer un fichier).
On va procéder en deux temps, en suivant le canevas MVD :
1. ajouter des méthodes sur notre modèle (classe ModeleTableBiblio), pour
ajouter/supprimer/modifier un livre et sauvegarder/lire nos données sur fichier ;
2. ajouter des méthodes dans la fenêtre principale (classe MainWindowBiblio), pour
réagir aux événements en invoquant les méthodes précitées du modèle.
Commençons par enrichir notre classe ModeleTableBiblio.
Choix du format de fichier
Pour enregistrer notre bibliothèque sur fichier, nous avons choisi le format JSON.
Ceci est juste un choix pragmatique, sachant que ce format est portable, qu'il permet
de sérialiser facilement des structures de données simples et qu'il est supporté via
le module standard Python json. JSON sera présenté plus en détail au chapitre
Présentation de JavaScript, Section 5, Structures de données. Alternativement, on
aurait pu choisir par exemple :
le format XML, supporté par le paquet xml de Python — standard, ouvert mais
verbeux et plus long à coder ;
le format CSV (comma separated values), supporté par le module csv de
Python — simple mais… attention à bien choisir le séparateur pour qu'il soit
absent des données (la virgule n'est certainement pas le bon choix !) ;
le format pickle défini par le module Python pickle — capable de représenter
des structures de données plus complexes, mais qui est non standard en dehors
de Python.
Note > Signalons que, au chapitre Accès à une base de données, nous verrons par
ailleurs comment utiliser une base de données au lieu d'un fichier.
119
