Bonjour,

J'ai essayé de juste mettre en avant la partie qui ne marche pas.
Quand je clique sur le bouton pour décaler à droite, mon programme ne le fait que 1 fois et je n'arrive pas à comprendre pourquoi :
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
from tkinter import *
from math import *
 
 
class Sphere(object):
    def __init__(self):
        self.fen = Tk()
        self.can = Canvas(self.fen, width=500, height=500, bg='white')
        self.can.pack()
        self.sphere()
        Button(self.fen, text='->', command=self.droite1).pack(side=LEFT)
        self.fen.mainloop()
 
    def sphere(self):
        self.x1 = 100
        self.y1 = 100
        self.astre1 = self.can.create_oval(self.x1, self.y1, self.x1 + 40, self.y1 + 40, fill='red')
 
    def bouge(self,h,g,x,y,astre):
        x += h
        y += g
        self.can.coords(astre, x, y, x + 40, y + 40)
 
    def droite1(self):
        self.bouge(10,0,self.x1,self.y1,self.astre1)
 
 
a = Sphere()
Quand je fais :
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
from tkinter import *
from math import *
 
 
class Sphere(object):
    def __init__(self):
        self.fen = Tk()
        self.can = Canvas(self.fen, width=500, height=500, bg='white')
        self.can.pack()
        self.sphere()
        Button(self.fen, text='->', command=self.droite1).pack(side=LEFT)
        self.fen.mainloop()
 
    def sphere(self):
        self.x1 = 100
        self.y1 = 100
        self.astre1 = self.can.create_oval(self.x1, self.y1, self.x1 + 40, self.y1 + 40, fill='red')
 
    def bouge(self,h,g):
        self.x1 += h
        self.y1 += g
        self.can.coords(self.astre1, self.x1, self.y1, self.x1 + 40, self.y1 + 40)
 
    def droite1(self):
        self.bouge(10,0)
 
 
a = Sphere()
Je n'ai aucune soucis..

Merci
Bonne soirée