Bonjour,
Je souhaiterais dessiner des points et des lignes avec Qt, pour cela j'ai utilisé QPainter.
J'ai reussi à le faire sur un QLabel.
Maintenant je voudrais faire mes dessins pas directement sur le QLabel mais d'abord sur un QPixmap qui je mettrai par la suite dans un QLabel. Pourquoi ? en fait je recupere mes point à partir d'un fichier (qui contient un nombre assez important) il y a des point (beaucoup meme que je ne vois pas) sauf j'agrandis mon QLabel ! du coup je voudrais utiliser la proprieté setScaleContents pour adapter la taille du QPixmap à la taille du QLabel.
j'ai essayé de dessiner le QPixmap en utilisant pas QPaintEvent mais QPaintDevice genre un truc du genre :
ensuite dans le fichier cpp, dessin est définie comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class ZoneDessin : public QPixmap { public: ZoneDessin(int largeur, int hauteur); void dessin(QPaintDevice *ev); };
la deja au moment de l'excution il m'affiche erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void ZoneDessin::dessin(QPaintDevice *) { QPainter painter(this); QPen pen; pen.setColor(Qt::red); pen.setWidth (3); painter.setPen(pen); painter.drawPoint(x,y); ... //reste du code
QPainter::setPen: Painter not active
QPainter::drawPoints: Painter not active
Je ne sais pas pourquoi ? auriez vous idée pour resoudre mon probleme c'est à dire adapter la taille de mon dessin pour la taille de mon QLabel ?
Merci.
Partager