touche enfoncée, coordonnées du pointeur, bouton souris enfoncé, etc.
En définissant une classe vue héritant de QGraphicsView, on a donc la possibilité de
surcharger toutes ces méthodes de type événementiel. Mais le framework Graphics
View va plus loin… Il propage intelligemment les événements de la vue vers la scène
qui lui est associée et, surtout, vers les éléments qu'elle contient. Ainsi, toutes les
méthodes précitées existent aussi au niveau des classes QGraphicsScene et
QGraphicsItem, où elles pourront être surchargées. Typiquement, si on veut pouvoir
cliquer sur un certain type d'élément de la scène pour faire apparaître un menu
contextuel, on fera une classe qui hérite par exemple de QGraphicsRectItem et dans
laquelle on surchargera la méthode mousePressEvent.
Il y a deux avantages majeurs à la technique qu'on vient de décrire :
on n'a pas de connexions signaux-slots à établir ;
on ne doit pas programmer d'algorithme de recherche des éléments ciblés par un
événement donné : les éléments concernés sont directement notifiés.
Le seul prix à payer — mais il est modéré en Python ! — est qu'on doit créer des
classes qui héritent des classes offertes par le framework plutôt que les utiliser
directement (comme nous l'avons fait dans la section précédente).
Après cette introduction, nous sommes prêts à démarrer la programmation de
l'application MosaiQ.
231
Précédent

- 232/494

Suivant