Bonjour,

Pourriez vous m'aider à comprendre comment "conceptualiser au mieux" l'outil classes?

Par exemple si on se fixe de faire une classe Voiture:
et de faire bouger ensuite (i.e. avec move(), after() ), de façons différentes, des instances de cette classe sur un canvas.
Comment structurer classe, méthode, fenetre Tk, canvas? Ou et comment placer after() pour que voit1 bouge?

Autrement dit, comment feriez vous proprement (et en m'expliquant un peu hein ) ce cas de figure?
En tous cas merci d'avance pour toute forme d'enseignement.

Code : 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
from tkinter import *
 
class voiture:
    """ classe fabriquant des objets voiture """
    def __init__(self, couleur, canvas, x1, y1, taille):
        self.couleur = couleur
        self.can = canvas
        self.x1 = x1
        self.y1 = y1
        self.taille = taille
        self.w = self.can.create_rectangle(self.x1, self.y1, self.x1+self.taille, self.y1+self.taille, fill=self.couleur)
 
    def bouge(self, dx, dy, vitesse ):
        self.dx = dx
        self.dy = dy
        self.vitesse = vitesse
        self.can.move(self.w, self.dx, self.dy)
 
 
# creation fenetre
fen = Tk()
# creation canvas
canW = 500
canH = 500
canBg = "ivory"
can = Canvas(fen, height=canH, width=canW, bg=canBg)
can.pack()
 
# instanciation de deux objets voiture
voit1 = voiture("red", can, 10, 20, 50)
voit2 = voiture("blue", can, 50, 60, 25)
 
# application de la methode bouge() aux "voitures"
voit1.bouge(200, 200, 500)
voit2.bouge(100, 100, 1000)
# gestionaire d'evenement bouclé
fen.mainloop()