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 :
Et les implémentations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class MonWidget { protected: void paintEvent (QPaintEvent* e); void mouseMoveEvent (QMouseEvent* e); QPainter* painter; QPoint* lastMousePos; };
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ... }
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 ?
Merci
Kwakanar
Partager