Redessiner un widget après un événement de souris
Bonjour à tous,
Je vais droit au but : comment faire pour redessiner le widget lorsque la souris est déplacée dessus ?
Voici les déclarations :
Code:
1 2 3 4 5 6 7 8
| class MonWidget {
protected:
void paintEvent (QPaintEvent* e);
void mouseMoveEvent (QMouseEvent* e);
QPainter* painter;
QPoint* lastMousePos;
}; |
Et les implémentations :
Code:
1 2 3 4 5 6 7 8 9 10
| void MonWidget::paintEvent (QPaintEvent*) {
painter = new QPainter(this);
// dessin du widget ...
delete painter;
}
void MonWidget::mouseMoveEvent (QMouseMoveEvent* e) {
lastMousePos = e->pos();
paintEvent(0); // Je pense que l'erreur viens d'ici ...
} |
J'ai essayé de remplacer paintEvent(0); par l'opération de dessin directement ce qui ne marche pas non plus. Le mouse-tracking est activé (dans le constructeur).
En somme, le seul moyen d'afficher la dernière position (lastMousePos) de la souris, est de redimensionner le widget après, pour que Qt déclenche le paintEvent seul.
Avez-vous des idées :P ?
Merci
Kwakanar