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 :
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 :
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 :
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.
Partager