C++ QT QCanvasEllipse - C++ - Programmation
Marsh Posté le 11-04-2003 à 19:10:59
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).
Marsh Posté le 12-04-2003 à 00:28:49
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. |
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
Marsh Posté le 12-04-2003 à 09:13:58
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.
Marsh Posté le 12-04-2003 à 09:33:25
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 ?
Marsh Posté le 12-04-2003 à 10:04:58
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
Marsh Posté le 12-04-2003 à 12:04:37
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
quand on fait un scrollbar1->value() et la scrollbar en question est une des scrollbar du QCanvasView, a quoi correspond la valeur retournée ?
Marsh Posté le 12-04-2003 à 12:12:36
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
Marsh Posté le 12-04-2003 à 13:50:47
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.
Marsh Posté le 12-04-2003 à 13:57:26
regarde les fonctions contentsToViewport et viewportToContents de QScrollView
Marsh Posté le 12-04-2003 à 17:25:16
oki bah je regarde ca et je refais un post si j'y arrive pas
Merci beaucoup pour les precisions
Marsh Posté le 11-04-2003 à 18:38:14
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