Bonjour,

Je voulais savoir si le canvas.coords se fait que lorsque il passe après mainloop ?

SI vous comprenez pas ce que je demande, regardez ceci:

En gros, normalement, le carre devrait bouger pixel par pixel 100 fois (boucle for). Cependant il ne s'update qu'à la fin. Je pense que c'est parce que l'on ne passe pas par la mainloop.. C'est ça ?

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
from tkinter import *
 
fenetre = Tk()
 
fenetre.geometry("1000x800") # on change les dimensions de notre fenêtre
 
hauteur_canvas, largeur_canvas = 840, 680
canvas = Canvas(fenetre, width = hauteur_canvas, height = largeur_canvas, bg ='black')
canvas.pack()
 
x1,y1,x2,y2 = 20,20,40,40
carre = canvas.create_rectangle(20,20,40,40, fill = 'white')
 
def update():
    global x1,y1,x2,y2
 
    canvas.coords(carre,x1,y1,x2,y2)
 
def bouge(event):
    global x1,y1,x2,y2
 
    for i in range(100):
        x1 += 1
        x2 += 1
        update()
 
canvas.bind("<Button-1>", bouge)
 
fenetre.mainloop()