Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2416 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  C++ QT QCanvasEllipse

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C++ QT QCanvasEllipse

n°359204
vince_223
Posté le 11-04-2003 à 18:38:14  profilanswer
 

Voila j'ai un probleme
 
Je voudrais créé un QCanvasEllipse transparent avec juste le contour en pointillé... est-ce Possible et comment on fait dans ce cas la ?
 
 
je voudrais savoir aussi comment obtenir les coordonnées de la souris par rapport a l'origine du canvas lorsque la souris passe sur le QCanvasView. Methode ? astuce ?
 
Merci de votre aide


Message édité par vince_223 le 11-04-2003 à 18:49:52
mood
Publicité
Posté le 11-04-2003 à 18:38:14  profilanswer
 

n°359223
gloop
Posté le 11-04-2003 à 19:10:59  profilanswer
 

pour le QCanvasEllipse, tu changes le pen utilisé par setPen en mettant le style que tu veux pour le QPen. pour la transparence, je crois pas que ce soit possible directement. faut que tu te le fasses toi meme.
 
pour les coordonées de la souris, tu surcharges la méthode mouseMoveEvent (QMouseEvent *e) et tu as les coordonées avec e->pos () (ou e->globalPos () pour les coordonées en global).

n°359404
vince_223
Posté le 12-04-2003 à 00:28:49  profilanswer
 

gloop a écrit :

pour le QCanvasEllipse, tu changes le pen utilisé par setPen en mettant le style que tu veux pour le QPen. pour la transparence, je crois pas que ce soit possible directement. faut que tu te le fasses toi meme.
 
pour les coordonées de la souris, tu surcharges la méthode mouseMoveEvent (QMouseEvent *e) et tu as les coordonées avec e->pos () (ou e->globalPos () pour les coordonées en global).
 


 
Le probleme, c'est quand je fais :  
cercle1->setPen(QPen(Qt::black,1,Qt::DashLine));
cercle1->setBrush(Qbrush(Qt::white,Qt::NoBrush));
IL n'y a rien qui s'affiche... (comprend pas pkoi)
 
Mais si je fais
cercle1->setPen(QPen(Qt::black,1,Qt::DashLine));
cercle1->setBrush(QBrush(Qt::lightGray,Qt::SolidPattern));
j'obtient un disque plein de couleur grise, mais toujours pas de contour en pointillés
 
 
Sinon pour les coordonnée de la souris, j'ai essaye ces 2 methodes, mais j'obtient pas le resultat voulu.
Les coordonnées sont retournées a partir de l'origine du QCanvasView, moi il me les faudrait a partir de l'origine du canvas, qui est plus grand que le QcanvasView.
est ce qu'il existe une methode qui fais ca, ou alors je dois le calculer a partir des scrollbars du QCanvasView ?
 
Merci quand meme gloop


Message édité par vince_223 le 12-04-2003 à 00:31:23
n°359405
vince_223
Posté le 12-04-2003 à 00:30:03  profilanswer
 

up


Message édité par vince_223 le 12-04-2003 à 00:30:46
n°359440
gloop
Posté le 12-04-2003 à 09:13:58  profilanswer
 

en regardant dans la doc, c'est normal que t'ais pas le trait  que tu veux, QCanvasEllipse n'utilise pas le pen.
pour tes coordonnées, tu peux utiliser la méthode QPoint QWidget::mapToParent (const QPoint &pos) const qui retourne les coordonnées du point pos du widget dans son parent.

n°359444
vince_223
Posté le 12-04-2003 à 09:33:25  profilanswer
 

Oki merci pour mapToParent, faut que j'essaye avec ca
 
sinon pour mon QCanvasEllipse, il est en fin de compte impossible de dessiner que le contour de mon cercle, non ?


Message édité par vince_223 le 12-04-2003 à 09:33:59
n°359452
gloop
Posté le 12-04-2003 à 10:04:58  profilanswer
 

faut le faire toi meme. le plus simple est de dériver de QCanvasEllipse et de surcharger virtual void drawShape ( QPainter & p ) en utilisant la méthode drawEllipse

n°359469
vince_223
Posté le 12-04-2003 à 12:04:37  profilanswer
 

oki
 
j essayé mapToParent, mais il me donne les coordonnées qui ont pour origine mon widget et pas le canvas
 
sinon comment fais t on pour modifier les valeur min, max et le linesStep des scrollbars du QCanvasView
j'utilise une classe qui herite de QcanvasView pour pouvoir utiliser les methodes mouseMoveEvent et mousPressEvent et j'arrive pas a modifier ces proprietés  :fou:
 
quand on fait un scrollbar1->value() et la scrollbar en question est une des scrollbar du QCanvasView, a quoi correspond la valeur retournée ?

n°359473
gloop
Posté le 12-04-2003 à 12:12:36  profilanswer
 

je comprends pas ton probleme de coordonées  
pour tes scrollbars t'as pas à modifier les min/max/linestep.
si tu veux te déplacer dans le QCanvasView (qui hérite de QScrollView), utilise les méthodes scrollBy et center

n°359497
vince_223
Posté le 12-04-2003 à 13:50:47  profilanswer
 

Bah en fait , je souhaiterai obtenir les coordonnées de la souris par rapport a l'origine du canvas, et non pas par rapport a l'origine du canvasView.

mood
Publicité
Posté le 12-04-2003 à 13:50:47  profilanswer
 

n°359501
gloop
Posté le 12-04-2003 à 13:57:26  profilanswer
 

regarde les fonctions contentsToViewport et viewportToContents de QScrollView

n°359538
vince_223
Posté le 12-04-2003 à 17:25:16  profilanswer
 

oki bah je regarde ca et je refais un post si j'y arrive pas
 
Merci beaucoup pour les precisions


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  C++ QT QCanvasEllipse

 

Sujets relatifs
Plus de sujets relatifs à : C++ QT QCanvasEllipse


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)