Précédent   Forum des professionnels en informatique > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2012, 21h17   #1
Invité de passage
 
Romain Rachenne
Inscription : mars 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Romain Rachenne

Informations forums :
Inscription : mars 2010
Messages : 6
Points : 1
Points : 1
Par défaut Tracer un trait qui suit la souris

Bonjour, voila le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Graphique::paintEvent(QPaintEvent *event)
{
	QTableWidget::paintEvent(event);
 
	if (this->viewport())
	{
		QPainter painter(this->viewport());
 
 
		painter.drawLine(QCursor::pos().x(), rowViewportPosition(1), QCursor::pos().x(), rowViewportPosition(nombreEmploye - 1) + rowHeight(nombreEmploye - 1) - 1);
	}
 
	event->accept();
}
 
void Graphique::mouseMoveEvent(QMouseEvent *event)
{
	repaint();
}
J'ai activé "setMouseTracking(true);" dans mon constructeur.

Je travail sur un QTableWidget, mon but étant de créer "une réglette" : un trait vertical qui suit la souris.

Actuellement mon code trace un trait mais ne fait rien sauf si je clique ou que je joue avec les fenêtre ( via windows ). De plus quand je clique il ne se déplace que dans la ligne où j'ai cliqué, (le trait reste fixe dans les autres lignes).

Si quelqu'un voit pourquoi, je seche.

EDIT : Le trait se met à jour dans la case où je clique, car le clique trace le cadre de la "selection", et donc un paintEvent dans la region de la case (il retrace ainsi le trait que dans cette case).

Il faut donc croire que le repaint() ne fait pas son boulot?


EDIT 2 : la solution : remplacer repaint(); par viewport()->repaint();
Pixora est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h19.


 
 
 
 
Partenaires

Hébergement Web