Figure 10.3 : Les classes filles de QGraphicsItem
Les classes qui viennent d'être citées sont relativement simples car elles dessinent
chacune un objet graphique bien particulier. À côté de cela, iI existe d'autres classes
filles de QGraphicsItem qui font des choses beaucoup plus sophistiquées : on peut citer
par exemple les classes QChart et QGraphicsProxyWidget, filles de QGraphicsWidget
qui est elle-même fille de QGraphicsItem [13] .
La classe QChart permet de créer facilement des graphiques mettant en relation des
séries de nombres, avec des axes et des légendes : on peut dessiner des fonctions
trigonométriques, l'évolution des ventes d'un produit, etc. Quant à la classe
QGraphicsProxyWidget, qui est sans doute la plus surprenante, elle permet de placer un
widget Qt sur la scène. Oui… Il est possible d'intégrer dans une scène donnée un
bouton, une case à cocher, un champ texte…, voire un panneau contenant plusieurs
widgets ; il existe d'ailleurs des démonstrations technologiques assez impressionnantes
où l'on fait subir aux widgets des rotations et des déformations. Toutefois, sachant que
QGraphicsView est un widget qui peut cohabiter avec les widgets traditionnels, il n'est
pas du tout indispensable d'intégrer des widgets à la scène ; le QGraphicsProxyWidget
est plutôt réservé à des usages avancés ou des interfaces non standards (voir l'exemple
Pad Navigator de Qt).
Toutes les classes filles qui viennent d'être citées ont des rôles bien spécifiques,
comme dessiner un rectangle, une ellipse, etc. Pour développer les éléments graphiques
nécessaires à une application, on va en général devoir étendre les QGraphicsItem pour
implémenter des éléments graphiques plus élaborés. À cette fin, on utilise les procédés
orientés objet habituels d'héritage et composition.
Héritage de QGraphicsItem — on peut hériter d'une classe fille existante telle
184
Les classes qui viennent d'être citées sont relativement simples car elles dessinent
chacune un objet graphique bien particulier. À côté de cela, iI existe d'autres classes
filles de QGraphicsItem qui font des choses beaucoup plus sophistiquées : on peut citer
par exemple les classes QChart et QGraphicsProxyWidget, filles de QGraphicsWidget
qui est elle-même fille de QGraphicsItem [13] .
La classe QChart permet de créer facilement des graphiques mettant en relation des
séries de nombres, avec des axes et des légendes : on peut dessiner des fonctions
trigonométriques, l'évolution des ventes d'un produit, etc. Quant à la classe
QGraphicsProxyWidget, qui est sans doute la plus surprenante, elle permet de placer un
widget Qt sur la scène. Oui… Il est possible d'intégrer dans une scène donnée un
bouton, une case à cocher, un champ texte…, voire un panneau contenant plusieurs
widgets ; il existe d'ailleurs des démonstrations technologiques assez impressionnantes
où l'on fait subir aux widgets des rotations et des déformations. Toutefois, sachant que
QGraphicsView est un widget qui peut cohabiter avec les widgets traditionnels, il n'est
pas du tout indispensable d'intégrer des widgets à la scène ; le QGraphicsProxyWidget
est plutôt réservé à des usages avancés ou des interfaces non standards (voir l'exemple
Pad Navigator de Qt).
Toutes les classes filles qui viennent d'être citées ont des rôles bien spécifiques,
comme dessiner un rectangle, une ellipse, etc. Pour développer les éléments graphiques
nécessaires à une application, on va en général devoir étendre les QGraphicsItem pour
implémenter des éléments graphiques plus élaborés. À cette fin, on utilise les procédés
orientés objet habituels d'héritage et composition.
Héritage de QGraphicsItem — on peut hériter d'une classe fille existante telle
184
