Pour une explication sur les associations :idGenre et :idLivre, référez-vous
respectivement aux méthodes ajouteLivre et supprimeLivre vues plus haut.
2.3. Modifications dans la fenêtre principale
Comme nous avons gardé quasiment la même interface pour le modèle, il y a peu de
choses à changer dans la classe MainWindowBiblio (main_window_biblio.py).
Le constructeur
Le premier point à modifier concerne le constructeur. Il y a une ligne à modifier et
une ligne à ajouter :
class MainWindowBiblio(QMainWindow, Ui_MainWindowBiblio):
def __init__(self, parent=None):
…
self.modeleTableBiblio = ModeleTableBiblio()
self.comboBoxGenre.addItems(self.modeleTableBiblio.genres())
…
Comme vu au chapitre Programmer par modèle-vue, ModeleTableBiblio gère
seule ses données par accès à la base de données ; il n'y a plus lieu de lui passer
une liste vide pour s'initialiser. Par ailleurs, comme les genres littéraires sont à
présent chargés dans le modèle, il faut les placer nous-mêmes dans la liste
déroulante comboboxGenre ; ceci se fait très facilement par utilisation de la
méthode addItems, qui charge en un coup une liste de chaînes de caractères ;
cette liste est obtenue par appel à la méthode genres() que nous avons définie
plus haut, dans le modèle.
La méthode on_pushButtonSauvegarder_clicked
La seconde méthode à changer est on_pushButtonSauvegarder_clicked :
@pyqtSlot()
def on_pushButtonSauvegarder_clicked(self):
livre = Livre( idLivre = None,
titre = self.lineEditTitre.text(),
…
…
Comme on a ajouté l'attribut idLivre dans le tuple nommé Livre, il faut lui
169
Précédent

- 170/494

Suivant