Salut,
Alors pour faire bref, la méthode paint() est la méthode appelée lorsqu ton graphicsItem doit être repeint (souvent quand il reçoit un update). C'est donc dans cette méthode que tu définis ce qui doit être déssiné (donc c'est là que tu fais des drawRect(), etc.).
La méthode boudingRect(), comme son nom l'indique, doit retourner le rectangle qui englobe ton item. Cette méthode est souvent utilisée pour restreindre la zone à repeindre à la zone qui a changée (par exemple si tu as 10 items dans ta scène, et qu'un seul change de couleur, il n'est pas forcément utile de repeindre les 9 qui sont restés identiques.) Cette fonction doit donc retourné un rectangle. Ce rectangle est représenté en coordonées relative à ton item (et non en coordonées de la scène). En gros la position [0,0] correspond au centre de ton item (ou plus précisément au point qui représente la position de ton item). Donc si tu veux retourner un carré centré sur ton item, il faut faire un
return QRectF(-10,-10,20,20);
Bien sûr si tu changes la position de ton item, la position de ce carré va bouger par rapport au référentiel de la scène.
J'éspère que c'est un peu plus clair. Le mieux est de faire des essais, tu comprendras plus vite.
G.
Partager