self.on_treeViewLivres_selectionChanged) def
on_treeViewLivres_selectionChanged(self,selected,deselected): indexesSelection =
selected.indexes() if len(indexesSelection) > 0: self.indexSelection =
indexesSelection[0] self.indiceLivreSelectionne = self.indexSelection.row()
self.afficheLivre(self.modeleTablesBiblio.livres[ self.indiceLivreSelectionne]) def
afficheLivre(self,livre): self.lineEditTitre.setText(livre.titre)
self.lineEditAuteur.setText(livre.auteur)
self.comboBoxGenre.setCurrentText(livre.genre)
self.lineEditEditeur.setText(livre.editeur)
self.dateEditAnnee.setDate(QDate(livre.annee,1,1))
self.plainTextEditResume.setPlainText(livre.resume)
self.doubleSpinBoxPrix.setValue(livre.prix)
Comme on n'a pas encore implémenté de fonction pour créer des livres à partir de
données saisies, on écrit en dur une petite liste de trois livres. Ce code de test
temporaire sera supprimé très bientôt : on optera pour une lecture de fichier ou
d'une base de données.
On crée notre modèle ModeleTableBiblio sur la base de la liste de livres
construite…
… et on déclare ce modèle à la vue self.treeViewLivres en invoquant
setModel : sachant que notre classe ModeleTableBiblio a été programmée en
respectant le protocole demandé, ceci suffit à afficher les livres dans la liste.
Ce qui est un peu plus compliqué, c'est la manière de retrouver le livre sélectionné
pour le passer à afficheLivre. Il faut d'abord mettre la main sur le signal émis
lorsque l'utilisateur sélectionne un livre dans la liste. On l'obtient à travers une
chaîne d'objets : on part du widget affichant la liste des livres
self.treeViewLivres ; ensuite, on récupère l'objet qui gère la sélection des
éléments de cette liste par selectionModel() ; l'objet renvoyé est une instance de
QItemSelectionModel, duquel on obtient enfin le signal selectionChanged. On a
donc le signal qui est émis lorsque la sélection change (par exemple lorsque
l'utilisateur clique sur un livre). Pour réagir à ce signal, on le connecte à la méthode
slot on_treeViewLivres_selectionChanged.
La méthode on_treeViewLivres_selectionChanged reçoit deux arguments
116
Précédent

- 117/494

Suivant