# 3.4. Étendre la classe Widget

Dans la leçon 5, le but va maintenant être d'étendre la classe widget. Vous allez donc apprendre les fonctions virtuelles. Ici, l'événement `resizeEvent()`> est réimplanté. Ce qu'il est important d'apprendre ici (au-delà de l'extension de classe), c'est que Qt utilise des fonctions virtuelles ayant un événement en paramètre pour gérer les événements utilisateurs. Vous devriez donc vous familiariser avec les classes suivantes de la bibliothèque Qt :

- QEvent

- QChildEvent

- QCloseEvent

- QFocusEvent

- QKeyEvent

- QMouseEvent

- QMoveEvent

- QPaintEvent

- QResizeEvent

- QTimerEvent

Lorsque vous voulez écrire des widgets personnalisés, spécialement les zones d'affichage des applications, vous devez surcharger l'implantation par défaut des méthodes-événements du widget par les vôtres pour certains événements à traiter. Par exemple, cela peut être

`virtual> void mousePressEvent ( QMouseEvent * )` afin de traiter un événement de la souris pour afficher un menu contextuel. Dans l'implantation, vous devrez insérer un paramètre formel dans l'en-tête de la fonction, la plupart des développeurs utilise `event`> ou juste `e`> comme nom du paramètre.

Ensuite, vous pouvez traiter les paramètres de l'événement. Pour un `QMouseEvent`>, vous devez demander si c'est le bouton gauche, droit ou du milieu de la souris qui a provoqué cet événement.