Bonjour,

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
 
from tkinter import *
from threading import Timer
 
def moveTimer(event):
    dx=5
    dy=5
    can.move(rect, dx, dy)
    dx+=2
    dy+=2
    timer = Timer(0.05, lambda: moveTimer(event))
    timer.start()
 
def moveAfter(event):
    dx=5
    dy=5
    can.move(rect, dx, dy)
    dx+=2
    dy+=2
    can.after(50, lambda: moveAfter(event) )
 
width=400
height=400
x=0
y=0
 
fen = Tk()
can = Canvas(fen, width=width, height=height, bg="black")
can.grid()
rect = can.create_rectangle(x+5,y+5,x+25, y+25, fill="ivory")
can.bind("<Button-1>", moveTimer)
can.bind("<Button-3>", moveAfter)
fen.mainloop()
Que diriez-vous à un débutant cherchant à créer un mouvement d'un item sur un canevas?
D'utiliser plutôt un truc ressemblant à la fonction moveTimer() ou un truc style moveAfter() ou une autre technique plus adaptée?
Autrement dit: Quelles sont les différences d'usages qui permettent de s'orienter vers une technique de mouvement plutôt qu'une autre?

(Pour le reste, n'hésitez à corriger, commenter, (voire défoncer l'auteur), sur toute erreur (de fond et/ou de forme) du "code-exemple" ci-dessus)