Cours:DiyWidgetQT

De troyesGEII
Aller à : navigation, rechercher

Pour créer votre propre Widget, il convient de spécialiser la classe QWidget :

class MonWidget : public QWidget
{
    Q_OBJECT
public:
    MonWidget(QWidget *parent = nullptr);

signals:
};


Il suffit ensuite de redéfinir la méthode paintEvent qui est bien entendue déclarée comme virtual dans la classe QWidget !

protected:
    void paintEvent(QPaintEvent *event) override;

Cette méthode ne sera pas appelée directement. On utilisera au besoin les méthodes update ou repaint au besoin !


On utilisera la classe QPainter pour faire le dessin du widget, ex :

void MonWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    painter.drawRect(width()/4,height()/4,
                     width()/2,height()/2);

}


On pourra ensuite ajouter un objet de ce type dans l'interface graphique par exemple en faisant une promotion comme vu dans une autre séance