Cours:DiyWidgetQT : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 35 : Ligne 35 :
 
}
 
}
 
</source>
 
</source>
 +
 +
 +
On pourra ensuite ajouter un objet de ce type dans l'interface graphique par exemple en faisant une promotion comme [[Cours:HeritageWidgetQT|vu dans une autre séance]]

Version du 2 octobre 2024 à 09:59

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