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
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
