Bonjour,

Je debute sur Qt. Je trouve le warning suivant quand j'essaye d'utiliser QPainter sur un classe que j'ai appelee "Canvas" derivee de QGraphicsView :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
QPainter::begin: Widget painting can only begin as a result of a paintEvent
De plus, mon "Canvas" reste en blanc, et aucun desing ne s'affiche.

J'ai redefini le paintEvent() de Canvas de la facon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void Canvas::paintEvent(QPaintEvent *event)
{
	qDebug() << "Inside Canvas::paintEvent";
 
	QPen pen(Qt::black, 2, Qt::SolidLine);
 
	QPainter painter(this);
 
	painter.setPen(pen);
	painter.drawLine(20, 40, 250, 40);
	painter.drawLine(20, 70, 250, 70);
}
NB : L'execution passe bien la dedans, car je vois dans les logs le message "Inside Canvas::paintEvent".

La definition de ma classe Canvas est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef CANVAS_H_
#define CANVAS_H_
 
#include <QGraphicsView>
#include <QWidget>
 
class Canvas : public QGraphicsView
{
	Q_OBJECT
 
public:
	Canvas(QWidget *parent = 0);
	virtual ~Canvas();
 
protected:
	void paintEvent(QPaintEvent *event);
};
 
#endif /* CANVAS_H_ */
Quelqu'un peut me donner un coup de main ou m'orienter avec ce probleme ?

Je vous remercie d'avance.