Bonjour,

Dans le cadre d'un exercice pour débuter sur le module tkinter, je dois réaliser un programme qui crée un polygone et ajoute un nouveau point à chaque clic.

J'ai réalisé le code ci-dessous, mais je ne comprend pas pourquoi il ne fonctionne pas. Le problème semble venir du nouveau point qui s'enregistre à la place du précédent, dans la liste contenant tous les points du polygone.

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
from tkinter import *
 
def changer_text():
    message['text']=" test "
 
def creer_polygone(event):   
    can.create_polygon(event.x,event.y, outline="red", width=1,tag='polygon')
    #fonction qui lance la saisie
 
 
def ajouter_point(event):    
    t=can.find_all()
    if len(t)==0:
        creer_polygone(event)
        #Créer le polygon
    else :
        liste=can.coords('polygon')
        liste+=[event.x,event.y]
        can.coords('polygone',*liste)
        #ajouter un nouveau point
 
 
 
f=Tk()
f.wm_title("Démeleur")
 
can=Canvas(f, width =500, height =600, bg="sky blue")
message=Label(f,bg="light green", foreground="black")
bouton1=Button(f, text="Quitter", command=f.destroy).pack(side=BOTTOM)
 
changer_text()
can.pack()
message.pack()
 
can.bind("<Button-1>", ajouter_point)
 
f.mainloop()

Merci de votre aide

Cordialement