Application de la POO à tkinter


Etape 2 - Méthodes d'animation

Consignes permanentes :

  • Copier/coller le code ci-dessous dans un idle et le compléter en suivant les indications suivantes.
  • Tous les termes en italique dans le code doivent être remplacés par des valeurs correctes (attributs, méthodes, ...).
  • D'éventuels points d'interrogation ??? dans le code doivent être remplacés par du code valide.

Exercice

Une interface graphique peut comporter plusieurs fenêtres et/ou plusieurs zones de dessin (canvas), quelques modifications suffisent pour faire en sorte que la classe ne soit plus liée à une fenêtre ou un canvas particulier.

  1. Modifier le constructeur de la classe Rectangle en ajoutant deux nouveaux attributs ftr et cv designant respectivement la fenêtre cible et la zone de dessin (canvas) cible.
  2. Modifier le code de création des deux instances de la classe Rectangle en tenant compte des nouveaux attributs.

On souhaite ensuite doter la classe Rectangle de méthodes d'animation (les rectangles doivent pouvoir se déplacer dans une direction et à une vitesse déterminées par de nouveaux attributs.

  • Définir la méthode vitesse(...) dans la classe Rectangle :
    - ayant pour paramètres dx, dy, dt (valeurs du pas dans les directions x et y, et valeur du pas dans le temps) ; (la fonction crée de nouveaux attributs)
    - appelant la méthode mvt() (non définie à ce stade)
  • Définir la méthode mvt() :
    - appelant la méthode nom_canvas.move(nom_objet, pas suivant x, pas suivant y)
    - appelant la méthode nom_fenetre.after(pas de temps, callback)callback() est la fonction à appeler après un délai (fixé par le pas de temps) ; ici cette fonction est la méthode mvt() elle-même (mvt, sans parenthèses, et non mvt() dans after).


Code


Programmation objet