rectangle vert. Résultat des courses : le coin supérieur gauche du carré bleu est aux
coordonnées (5,9) de la scène.
Pour résumer ces règles en deux phrases :
un élément est toujours positionné dans le repère de son parent ou, s'il n'a pas de
parent, directement dans le repère de la scène (méthode setPos) ;
les coordonnées définissant l'élément sont relatives à la position de cet élément
(voir constructeurs tels que QGraphicsRectItem).
Bien sûr, tout cela peut paraître compliqué de prime abord. Toutefois, à l'usage, ces
quelques principes apparaissent en définitive assez naturels quand on pratique la
composition d'éléments : il est plus aisé de positionner un boulon du vaisseau spatial
dans le repère de ce vaisseau plutôt que dans le repère absolu de la scène ! Par
ailleurs, tout ce qui précède n'implique pas la nécessité de se lancer dans des calculs
méticuleux : en cas de besoin, les QGraphicItem proposent des méthodes de conversion
d'un repère à l'autre ; par exemple, les coordonnées du coin supérieur gauche du carré
bleu peuvent être vérifiées par la méthode mapToScene :
print(carreBleu.mapToScene(0.0,0.0))
# affiche: PyQt5.QtCore.QPointF(5.0, 9.0)
Inversement, on peut déterminer comment s'expriment des coordonnées scène en
coordonnées élément par appel à mapFromScene :
print(carreBleu.mapFromScene(0.0,0.0))
# affiche: PyQt5.QtCore.QPointF(-5.0, -9.0)
193
Précédent

- 194/494

Suivant