Bonjour je suis lycéen et je fais mes débuts sur edupython. Pour mes premiers pas dans tkinter jai decider de faire une sorte de questionnaire.

Ci dessous mon 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      Utilisateur
#
# Created:     07/11/2020
# Copyright:   (c) Utilisateur 2020
# Licence:     <your licence>
#-------------------------------------------------------------------------------
from tkinter import *
 
#Creation fenetre principale
 
f1 = Tk()
f1.title("Q1")
f1.geometry("750x750")
f1.config(background="lightblue")
 
def Q2():
    f1.destroy()
    f2 = Tk()
    f2.title("Q2")
    f2.geometry("750x750")
    f2.config(background="lightblue")
    def Q3():
     f2.destroy()
     f3 = Tk()
     f3.title("Q3")
     f3.geometry("750x750")
     f3.config(background="lightblue")
     def Q4():
        f3.destroy()
        f4 = Tk()
        f4.title("Q4")
        f4.geometry("750x750")
        f4.config(background="lightblue")
        def Q5():
            f4.destroy()
            f5 = Tk()
            f5.title("Q5")
            f5.geometry("750x750")
            f5.config(background="lightblue")
            def Q6():
                f5.destroy()
                f6 = Tk()
                f6.title("Q6")
                f6.geometry("750x750")
                f6.config(background="lightblue")
                def Q7():
                    f6.destroy()
                    f7 = Tk()
                    f7.title("Q7")
                    f7.geometry("750x750")
                    f7.config(background="lightblue")
########################################################################################################################################
                    fp1 = Frame(f7,bg="black", bd=3, relief=SUNKEN)
                    fp2 = Frame(f7,bg="black", bd=3, relief=SUNKEN)
                    fp3 = Frame(f7,bg="black", bd=3, relief=SUNKEN)
 
                    label_title= Label(f7, text="Quelle est l'objectif de votre voyage",font=("Arial Back",30),bg=("lightblue"))
                    label_title.pack(expand=YES)
 
                    p1 = Button(fp1, text=(" S'amuser un max "), font=("courrier",20), bg=("lightgreen"))
                    p1.pack(expand=YES)
 
                    p2 = Button(fp2, text=("  realiser un retour au source et se questionner sur soi meme"), font=("courrier",20), bg=("lightgreen")) #command=****
                    p2.pack(expand=YES)
 
                    p4 = Button(fp3, text=(" Echapper au cycle stressant du travail"), font=("courrier",20), bg=("lightgreen")) #command=***
                    p4.pack(expand=YES)
 
                    fp1.pack(expand=YES)
                    fp2.pack(expand=YES)
                    fp3.pack(expand=YES)
###############################################################################################################################
 
                fp1 = Frame(f6,bg="black", bd=3, relief=SUNKEN)
                fp2 = Frame(f6,bg="black", bd=3, relief=SUNKEN)
                fp3 = Frame(f6,bg="black", bd=3, relief=SUNKEN)
 
 
                label_title= Label(f6, text="Vous partez principalemetn en vancances pour:",font=("Arial Back",25),bg=("lightblue"))
                label_title.pack(expand=YES)
 
 
 
                p1 = Button(fp1, text=(" Faire du shopping (produit non trouvable chez vous) "), font=("courrier",20), bg=("lightgreen"), command=Q7)
                p1.pack(expand=YES)
 
                p2 = Button(fp2, text=(" Faire des activites familiales( parc dattraction, event etc ... "), font=("courrier",20), bg=("lightgreen"), command=Q7)
                p2.pack(expand=YES)
 
 
                p4 = Button(fp3, text=("Decouvrir de nouvelles cultures et coutumes"), font=("courrier",20), bg=("lightgreen"), command=Q7)
                p4.pack(expand=YES)
 
                fp1.pack(expand=YES)
                fp2.pack(expand=YES)
                fp3.pack(expand=YES)
 
#############################################################################################################################################
 
            fp1 = Frame(f5,bg="black", bd=3, relief=SUNKEN)
            fp2 = Frame(f5,bg="black", bd=3, relief=SUNKEN)
            fp3 = Frame(f5,bg="black", bd=3, relief=SUNKEN)
 
 
            label_title= Label(f5, text="Que choisiriez-vous entre ?",font=("Arial Back",30),bg=("lightblue"))
            label_title.pack(expand=YES)
 
 
 
            p1 = Button(fp1, text=(" Plat epice "), font=("courrier",20), bg=("lightgreen"), command=Q6)
            p1.pack(expand=YES)
 
            p2 = Button(fp2, text=(" Un plat raffine "), font=("courrier",20), bg=("lightgreen"), command=Q6)
            p2.pack(expand=YES)
 
 
            p4 = Button(fp3, text=("   Plat Commun (VALEUR SURE)  "), font=("courrier",20), bg=("lightgreen"), command=Q6)
            p4.pack(expand=YES)
 
 
            fp1.pack(expand=YES)
            fp2.pack(expand=YES)
            fp3.pack(expand=YES)
 
####################################################################
        fp1 = Frame(f4,bg="black", bd=3, relief=SUNKEN)
        fp2 = Frame(f4,bg="black", bd=3, relief=SUNKEN)
        fp3 = Frame(f4,bg="black", bd=3, relief=SUNKEN)
 
        label_title= Label(f4, text="Que preferez-vous entre ?",font=("Arial Back",30),bg=("lightblue"))
        label_title.pack(expand=YES)
 
        p1 = Button(fp1, text=(" Faire du surf "), font=("courrier",20), bg=("lightgreen"), command=Q5)
        p1.pack(expand=YES)
 
        p2 = Button(fp2, text=(" Faire de la randonne"), font=("courrier",20), bg=("lightgreen"), command=Q5)
        p2.pack(expand=YES)
 
        p4 = Button(fp3, text=("   Faire du sport en salle (tennis, ping pong,etc... "), font=("courrier",20), bg=("lightgreen"), command=Q5)
        p4.pack(expand=YES)
 
 
        fp1.pack(expand=YES)
        fp2.pack(expand=YES)
        fp3.pack(expand=YES)
 
 
########################################################################
#Creation image
     width=375/2
     height=375
 
     Image= PhotoImage(file='E:/Image Isn/Q3/mer.gif').zoom(2)
     canvas = Canvas(f3, width=750, height=750/3, bg='red') # largeur et hauteur du canvas
     canvas.create_image(width, height, image=Image)# Positionnement  a partir dune grille
     canvas.place(x=0,y=0)
 
 
#CREATION DEUXIME IMAGE
     width2=375/2 # x csur le centre de limage
     height2=375
 
     Image2= PhotoImage(file='E:/Image Isn/Q3/foret.gif').zoom(2)
     canvas = Canvas(f3, width=750, height=750/3, bg="green")# largeur et hauteur du canvas
     canvas.create_image(width2, height2, image=Image2)# Positionnement  a partir dune grille
     canvas.place(x=0,y=750/3)
 
#creation 3 eme fenetre
 
     width3=375/2 # x csur le centre de limage
     height3=375
 
     Image3= PhotoImage(file='E:/Image Isn/Q3/ville.gif').zoom(2)
     canvas = Canvas(f3, width=750, height=750/3, bg="green")# largeur et hauteur du canvas
     canvas.create_image(width2, height2, image=Image3)# Positionnement  a partir dune grille
     canvas.place(x=0,y=750*2/3)
 
     fp1 = Frame(f3,bg="black", bd=3, relief=SUNKEN)
     fp2 = Frame(f3,bg="black", bd=3, relief=SUNKEN)
     fp3 = Frame(f3,bg="black", bd=3, relief=SUNKEN)
 
     label_title= Label(f3, text="Ou preferez-vous passez vos vancances ?",font=("Arial Back",30),bg=("lightblue"))
     label_title.pack(expand=YES)
 
     p1 = Button(fp1, text=(" En Mer "), font=("courrier",20), bg=("lightgreen"), command=Q4)
     p1.pack(expand=YES)
 
     p2 = Button(fp2, text=(" En Foret"), font=("courrier",20), bg=("lightgreen"), command=Q4)
     p2.pack(expand=YES)
 
     p4 = Button(fp3, text=("   En Ville   "), font=("courrier",20), bg=("lightgreen"), command=Q4)
     p4.pack(expand=YES)
 
     fp1.pack(expand=YES)
     fp2.pack(expand=YES)
     fp3.pack(expand=YES)
 
 
#################################################################################
 
#creation fenetre des reponses juste les caracteristiques
    width2=375/2 # x csur le centre de limage
    height2=375
 
    Image2= PhotoImage(file='E:/Image Isn/Q2/correct.gif').zoom(5)
    canvas = Canvas(f2, width=375, height=750, bg="green")# largeur et hauteur du canvas
    canvas.create_image(width2, height2, image=Image2)# Positionnement  a partir dune grille
    canvas.place(x=0)
 
    width=375/2
    height=375
 
    Image= PhotoImage(file='E:/Image Isn/Q2/false.gif').zoom(3)
    canvas = Canvas(f2, width=375, height=750, bg='red') # largeur et hauteur du canvas
    canvas.create_image(width, height, image=Image)# Positionnement  a partir dune grille
    canvas.place(x=375)
 
 
    fp1 = Frame(f2,bg="black", bd=3, relief=SUNKEN)
    fp2 = Frame(f2,bg="black", bd=3, relief=SUNKEN)
 
 
    label_title= Label(f2, text="Vous confrontez a d'autres langues que l'anglais et le francais vous est-il gênant ?",font=("Arial Back",15),bg=("lightblue"))
    label_title.pack(side=TOP)
 
#Reponse gestion de comment appraitront les reponses dans la fenetre
#1
    p1 = Button(fp1, text=(" Oui"), font=("courrier",20), bg=("lightgreen"), command=Q3)
    p1.pack(expand=YES)
#2
    p2 = Button(fp2, text=(" Non"), font=("courrier",20), bg=("lightgreen"), command=Q3)
    p2.pack(expand=YES)
 
    fp1.place(x=100,y=350)
    fp2.place(x=500,y=350)
 
 
 
############################################################################################################
#Question
 
 
width=375
height=375
 
Image= PhotoImage(file='E:/Image Isn/Q1/image gif/flocon.gif').zoom(5)
canvas = Canvas(f1, width=375, height=750, bg="black")# largeur et hauteur du canvas
canvas.create_image(width, height, image=Image)# Positionnement  a partir dune grille
canvas.place(x=375)
 
 
#CREATION DEUXIME IMAGE
width2=375
height2=375
 
Image2= PhotoImage(file='E:/Image Isn/Q1/image gif/feu.gif').zoom(5)
canvas = Canvas(f1, width=375, height=750, bg="black")# largeur et hauteur du canvas
canvas.create_image(width2, height2, image=Image2)# Positionnement  a partir dune grille
canvas.place(x=0)
 
#creation fenetre des reponses juste les caracteristiques
fp1 = Frame(f1,bg="black", bd=3, relief=SUNKEN)
 
fp2 = Frame(f1,bg="black", bd=3, relief=SUNKEN)
 
label_title= Label(f1, text="Que preferiez-vous entre un pays:",font=("Arial Back",30))
label_title.pack(side=TOP)
 
#Reponse gestion de comment appraitront les reponses dans la fenetre
#1
p1 = Button(fp1, text=(" Chaud"), font=("courrier",20), bg=("lightgreen"), command=Q2)
p1.pack(expand=YES)
#2
p2 = Button(fp2, text=(" Froid"), font=("courrier",20), bg=("lightgreen"), command=Q2)
p2.pack(expand=YES)
 
 
#Situer les fenetres placement de fenetre
fp1.place(x=100,y=350)
fp2.place(x=500,y=350)
 
#Afficher
 
f1.mainloop()
Le problème que je rencontre est le suivant:

-A partir de la deuxième frame(Q2) les images n'apparaissent plus , le canvas lui est bien interpréter mais impossible d'avoir l'image.

-Si je teste le canvas dans une module appart il fonctionne parfaitement j'en conclus donc que le problème provient du fait qu'il soit dans ma fonction ( je suspecte un problème dût a la fenêtre principale sur lequel repose les canvas )

Je planche sur ce problème depuis plusieurs heures mais je ne vois pas toujours pas comment réussir a le résoudre.

Tout aide serait la bienvenue merci d'avance