Voici un programme qui doit dessiner un cercle un carre et triangle avec la souris sur un canvas (tkinter). La partie qui dessine un triangle ne marche. A lma compilation il dit que " config " est innexistant. Il reconnait pas cette focntion.

voici le code :


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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from Tkinter import *
 
 
class Dessiner(Tk):
 
 
    def __init__(self):
        Tk.__init__(self)
 
        self.fig=StringVar()
        self.fig.trace("w", self.fig_callback)
 
 
        self.title("Dessiner: carre, triangle ou cercle")
        self.canvas=Canvas(self, bg='white', width=600, height=600)
        self.canvas.pack()
 
        #**************************************
        Button(self, text="Quitter", width=20, command=self.quit).pack(side=LEFT)
        self.bcarre = Button(self, text="Carre", fg='black', width=20, command=lambda: self.fig.set("Carre")).pack(side=LEFT)
        self.bcercle = Button(self, text="Cercle", fg='black', width=20, command=lambda: self.fig.set("Cercle")).pack(side=LEFT)
        self.btriangle = Button(self, text="Triangle", fg='black', width=20, command=lambda: self.fig.set("Triangle"))
        self.btriangle.pack(side=LEFT)
        #***************************************
 
        self.fig.set("Cercle")
        self.fig.set("Carre")
        self.fig.set("Triangle")
 
        self.canvas.bind('<ButtonPress-1>',self.clic)
        self.canvas.bind('<B1-Motion>',self.modif)
 
#-----------------------------------------------------------------------------------------------------------------------
    def fig_callback(self, *args):
        if self.fig.get() == "Cercle":
            self.bcercle.config(fg='white')
            self.bcarre.config(fg='black')
            self.btriangle.config(fg='black')
 
            elif self.fig.get() == "Carre":
            self.bcercle.config(fg='black')
            self.bcarre.config(fg='white')
            self.btriangle.config(fg='black')
 
            elif self.fig.get() == "Triangle":
            self.bcercle.config(fg='black')
            self.bcarre.config(fg='black')
            self.btriangle.config(fg='white')
#-----------------------------------------------------------------------------------------------------------------------
    def modif(self, event):
        self.x2=event.x
        self.y2=event.y
        self.x3=event.x
        self.y3=event.y
 
        if (self.fig.get() == "Cercle" or self.fig.get()== "Carre"):
            self.canvas.coords(self.item, self.x1, self.y1, self.x2, self.y2)
        if (self.fig.get() == "Triangle") :
            self.canvas.coords(self.item, self.x1, self.y1, self.x2, self.y2, self.x3, self.y3)
#-----------------------------------------------------------------------------------------------------------------------
    def clic(self, event):
        self.x1=event.x
        self.y1=event.y
        self.x2=event.x
        self.y2=event.y
        self.x3=event.x
        self.y3=event.y
 
        if self.fig.get() == "Cercle":
                self.item=self.canvas.create_oval(self.x1, self.y1, self.x2, self.y2, fill='black')
              elif self.fig.get() == "Carre":
                    self.item=self.canvas.create_rectangle(self.x1, self.y1, self.x2, self.y2, fill='black')
               elif self.fig.get() == "Triangle":
                    self.item=self.canvas.create_polygon(self.x1, self.y1, self.x2, self.y2,self.x3, self.y3, fill='black')
#-----------------------------------------------------------------------------------------------------------------------
 
if __name__== '__main__':
    fenetre=Dessiner()
        fenetre.mainloop()
VOILA ? LA PARTIE QUI POSE PROBELE EST SIGNALE EN ROUGE ;

Merci d'avance pour votre aide.