classes.
2.1. Classe QGraphicsScene
Le rôle de la classe QGraphicsScene est de définir une scène qui contient des éléments
instances de QGraphicsItem. Comme expliqué plus haut, la scène ne s'occupe pas de
dessiner à l'écran mais de placer, déplacer ou enlever les éléments dans un espace 2D
non visible directement. Pour un philosophe réaliste, la scène serait en quelque sorte le
monde réel indépendant de la manière dont on l'observe. Rien n'empêche d'ailleurs de
créer une scène sans aucune vue, quoique ceci n'ait pas grand intérêt pour une
application ! L'espace de la scène a par ailleurs un système de coordonnées propre
utilisant des nombres en virgule flottante : ceci permet une meilleure approximation de
notre monde physique par rapport à des coordonnées en nombres entiers, propres au
monde pixelisé d'un écran d'ordinateur.
La classe QGraphicsScene a une machinerie interne complexe pour accéder
efficacement aux éléments. Heureusement, tout cela est caché au programmeur. La
méthode principale offerte par QGraphicsScene est très simple : addItem(item)
ajoute le QGraphicsItem item donné à la scène, aux coordonnées qui lui sont
assignées. Aussi, à l'appel de addItem, si des vues sont en train d'observer la portion
de la scène où l'élément est placé, elles seront rafraîchies automatiquement. Pour
faciliter la vie du programmeur, QGraphicsScene propose des méthodes de commodité
pour combiner en un seul appel la création de l'élément et son ajout sur la scène
(addLine, addRect, addEllipse, etc) ; nous aurons l'occasion d'y revenir au chapitre
Première application avec une vue graphique.
2.2. Classe QGraphicsItem
La classe QGraphicsItem définit un élément géométrique à placer sur la scène, avec les
données et méthodes nécessaires pour dessiner cet élément.
La classe QGraphicsItem a plusieurs classes filles qui sont directement utilisables ;
elles permettent de représenter les éléments géométriques de base : lignes
(QGraphicsILineItem), rectangles (QGraphicsIRectItem), polygones
(QGraphicsIPolygonItem), ellipses (QGraphicsIEllipseItem), etc. ; par ailleurs, un
élément peut aussi définir du texte à afficher (QGraphicsITexttem et
QGraphicsISimpleTextItem) et même une image qui peut être chargée à partir d'un
fichier (QGraphicsIPixmapItem).
183
2.1. Classe QGraphicsScene
Le rôle de la classe QGraphicsScene est de définir une scène qui contient des éléments
instances de QGraphicsItem. Comme expliqué plus haut, la scène ne s'occupe pas de
dessiner à l'écran mais de placer, déplacer ou enlever les éléments dans un espace 2D
non visible directement. Pour un philosophe réaliste, la scène serait en quelque sorte le
monde réel indépendant de la manière dont on l'observe. Rien n'empêche d'ailleurs de
créer une scène sans aucune vue, quoique ceci n'ait pas grand intérêt pour une
application ! L'espace de la scène a par ailleurs un système de coordonnées propre
utilisant des nombres en virgule flottante : ceci permet une meilleure approximation de
notre monde physique par rapport à des coordonnées en nombres entiers, propres au
monde pixelisé d'un écran d'ordinateur.
La classe QGraphicsScene a une machinerie interne complexe pour accéder
efficacement aux éléments. Heureusement, tout cela est caché au programmeur. La
méthode principale offerte par QGraphicsScene est très simple : addItem(item)
ajoute le QGraphicsItem item donné à la scène, aux coordonnées qui lui sont
assignées. Aussi, à l'appel de addItem, si des vues sont en train d'observer la portion
de la scène où l'élément est placé, elles seront rafraîchies automatiquement. Pour
faciliter la vie du programmeur, QGraphicsScene propose des méthodes de commodité
pour combiner en un seul appel la création de l'élément et son ajout sur la scène
(addLine, addRect, addEllipse, etc) ; nous aurons l'occasion d'y revenir au chapitre
Première application avec une vue graphique.
2.2. Classe QGraphicsItem
La classe QGraphicsItem définit un élément géométrique à placer sur la scène, avec les
données et méthodes nécessaires pour dessiner cet élément.
La classe QGraphicsItem a plusieurs classes filles qui sont directement utilisables ;
elles permettent de représenter les éléments géométriques de base : lignes
(QGraphicsILineItem), rectangles (QGraphicsIRectItem), polygones
(QGraphicsIPolygonItem), ellipses (QGraphicsIEllipseItem), etc. ; par ailleurs, un
élément peut aussi définir du texte à afficher (QGraphicsITexttem et
QGraphicsISimpleTextItem) et même une image qui peut être chargée à partir d'un
fichier (QGraphicsIPixmapItem).
183
