Bonjour, je veux dessiner sur un widget mais Qt ne veut pas le faire.
J'ai redéfini la méthode paintEvent comme indiqué dans la doc.
Code cpp : 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 void GWidget::paintEvent(QPaintEvent* event) { QWidget::paintEvent(event); std::cout<<"repaint!"<<std::endl; QPainter painter; painter.begin(this); static const QPoint points[4] = { QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70) }; painter.setPen(Qt::SolidPattern); painter.drawPolygon(points, 4); painter.end(); }
Lorsque j'appelle repaint la méthode paintEvent n'est pas appelée alors j'ai essayer de l'appeler manuellement :
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 QPaintEvent event(QRegion(0, 0, gWidget->width(), gWidget->height())); gWidget->paintEvent(&event);
Voici l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 QWidget::paintEngine: Should no longer be called QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::setPen: Painter not active QPainter::end: Painter not active, aborted



Répondre avec citation
Partager