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 :

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);
};
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
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
la deja au moment de l'excution il m'affiche erreur :

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.