Bonjour à tous,

je suis actuellement en dernière année du collège, en option informatique. Cela fait seulement quelques semaines que l'on a commencer le language python avec le cours Swinnen et je dois déjà réaliser un projet, il doit être rendu pour vendredi et j'éprouve quelques difficultés, c'est pourquoi j'aimerais bien un ptit coup de pouce, svp. Ce projet débouchera sur une note et je compte dessus pour remonter ma pauvre petite moyenne...
Mon projet est de réaliser un mini logiciel de dessin. En m'inspirant de notre cours, ainsi que d'internet, je suis arrivé à quelque chose de potable, mais il y a des endroits du code que je ne comprend pas. Comme à la fin, je vais devoir être capable d'expliquer entièrement le code, je fais appelle à votre lumière.
Je vous mets ci-dessous les lignes que je ne comprend pas(excusez-moi pour la clareté):
- command=lambda :

- epaisseur=IntVar()
epaisseur.set(1)
repaisseur={}
for e in range(1,9):

- Les variables StringVar et IntVar

- global etatboutonsouris,x1,y1

Est-ce que quelqu'un aurait une réponse, ce serait vraiment sympa de votre part!!!!

Voilà 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
from tkinter import*
 
# creation d’une fenêtre
fen1=Tk()
fen1.title('Draweasy')
 
def tabeffacer(): 
    tableau.delete(ALL)         # ça effacera tout ce qu'il y a dans le tableau  
 
# creation de la barre de menu
menuDraweasy = Menu(fen1)
 
# creation du menu fichier
fichier = Menu(menuDraweasy)
menuDraweasy.add_cascade(label="Fichier",menu=fichier)                 # on crée une barre de menu
fichier.add_command(label="Quitter", command=fen1.destroy)         # on ajoute une option au menu
 
# creation du menu effacer
effacer = Menu(menuDraweasy)
menuDraweasy.add_cascade(label="Effacer",menu=effacer)
effacer.add_command(label="Effacer tout", command=lambda : tabeffacer())        
 
# afficher le menu
fen1.config(menu=menuDraweasy)
 
# creation des differents cadres
Tableau=LabelFrame(fen1)
Tableau.configure(text='',bd=2,relief='flat')
Tableau.grid(row=0,rowspan=3,column=2,padx=0,pady=0)
Couleur=LabelFrame(fen1)
Couleur.configure(text='Couleur du trait',font='Courier 10',bd=2,relief='flat')
Couleur.grid(row=0,column=1,padx=0,pady=0,sticky=W)
Style=LabelFrame(fen1)
Style.configure(text='Style de forme',font='Courier 10',bd=2,relief='flat')
Style.grid(row=1,column=1,padx=0,pady=0,sticky=W)
Epaisseur=LabelFrame(fen1)
Epaisseur.configure(text='Epaisseur du trait',font='Courier 10',bd=2,relief='flat')
Epaisseur.grid(row=2,column=1,padx=0,pady=0,sticky=W)
 
# creation des boutons du cadre Tableau
tableau=Canvas(Tableau)
tableau.configure(width=800,height=700,bg='white')
tableau.grid() 
 
# creation des boutons du cadre Couleur
couleur=IntVar()
couleur.set(0)
palette=['#ffffff','#c0c0c0','#808080','#000000','#800000','#808000','#008000',
        '#00ff00','#00ffff','#008080','#0000ff','#000080','#800080','#ff00ff',
        '#c0000f','#ff0000','#ffcc00','#ffff00']
rcouleur={}
for c in range(0,18):
    rcouleur[c]=Radiobutton(Couleur)
    rcouleur[c].configure(variable=couleur,value=c,bg=palette[c],padx=8,indicatoron=0)
    rcouleur[c].grid(sticky=W, padx=5)
 
# creation des boutons du cadre Epaisseur
epaisseur=IntVar()                 
epaisseur.set(1)
repaisseur={}
for e in range(1,9):
    repaisseur[e]=Radiobutton(Epaisseur)
    repaisseur[e].configure(variable=epaisseur,value=e,text=str(e),indicatoron=0)
    repaisseur[e].grid()
 
# creation des boutons du cadre Style
style=StringVar()
style.set('droite')
bou1=Radiobutton(Style)
bou1.configure(variable=style,value='droite',text='droite',padx=12,indicatoron=0)
bou1.grid(sticky=W)                      # .grid permet de bien placer les cadres
bou2=Radiobutton(Style)
bou2.configure(variable=style,value='courbe',text='courbe',padx=10,indicatoron=0)
bou2.grid(sticky=W)
bou3=Radiobutton(Style)
bou3.configure(variable=style,value='oval',text='ovale',padx=13,indicatoron=0)
bou3.grid(sticky=W)
bou4=Radiobutton(Style)
bou4.configure(variable=style,value='rectangle',text='rectangle',padx=4,indicatoron=0)
bou4.grid(sticky=W)
 
# etat du bouton gauche de la souris au début
etatboutonsouris='haut'
 
# evenement associe au clic sur le tableau
def clic(event):                                # creation d'un objet "event" lorsque l'on appuie sur le tableau
    global etatboutonsouris,x1,y1               # x1 et y1 sont les attributs qui contiennent les coordonnées
    etatboutonsouris='bas'      
    x1=event.x                                  # event.x et event.y contiennent les coordonnées cu clic
    y1=event.y
tableau.bind('<ButtonPress-1>',clic)            # .bind créer un évènement
 
# evenement associe au mouvement sur le tableau
def mouvement(event):
    global etatboutonsouris,x,y
    if (style.get()=='courbe' and etatboutonsouris=='bas'):
        tableau.create_line(x,y,event.x,event.y,fill=palette[couleur.get()],width=epaisseur.get())
    x=event.x
    y=event.y
tableau.bind('<Motion>',mouvement)
 
# evenement associe au declic sur le tableau
def declic(event):
    global etatboutonsouris,x2,y2
    etatboutonsouris='haut'
    x2=event.x
    y2=event.y
    if (style.get()=='droite'):
        tableau.create_line(x1,y1,x2,y2,fill=palette[couleur.get()],width=epaisseur.get())
    elif (style.get()=='oval'):
        tableau.create_oval(x1,y1,x2,y2,fill=palette[couleur.get()],width=epaisseur.get())
    elif (style.get()=='rectangle'):
        tableau.create_rectangle(x1,y1,x2,y2,fill=palette[couleur.get()],width=epaisseur.get())
tableau.bind('<ButtonRelease-1>',declic)
 
# attente des evenements
fen1.mainloop()             # démarre l'observateur d'évènements