Bonsoir, en ce moment je dois travailler sur un jeu sous python utilisant Tkinter.
Le jeu a un menu principal fgmain.py, un menu d'exercices fgMenuPC.py, et un exercice fgExTime.py.
Voilà fgmain raccourci:
fgMenuPC raccourci :
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 from tkinter import* import fgMenuPC def PlayMenuPC(): '''lance le menu des exercices de physique''' fenetre.destroy() fgMenuPC.MenuPC() #fenetre #bouton pour lancer le menu des exercices PCButtPic=PhotoImage(file ="PCButtPic.gif") PCButt=Button(fenetre, image=PCButtPic,command=PlayMenuPC) PCButt.place(x=600,y=200) fenetre.mainloop()
fgExtime très raccourci:
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 from tkinter import* import fgExTime def MenuPC(): '''Menu des exercices de physique''' def PlayExTime(): fenetre.destroy() fgExTime.ExTime() #fenetre #bouton pour lancer l'exercice TimeButt=Button(fenetre, text="dilatation du temps",bg="white",command=PlayExTime) TimeButt.place(x=650,y=200) fenetre.mainloop()
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 from tkinter import* import random def ExTime(): '''exercice ''' def replay(): '''relance le jeu''' def ExTimeEnd(): '''fenetre de fin de jeu''' ReplayEnd=Button(PopupEnd, text="rejouer",command=replay) ReplayEnd.place(x=700,y=350) def ExTimeCheck(a,b,c): '''verifie les reponses''' ExTimeEnd() def ExTimeSpeed(): '''les reponses''' submit=Button(canvas,text="valider",command=lambda r1=answer,r2=TimeM,r3=FrameSpeed:ExTimeCheck(r1,r2,r3)) submit.place(x=700,y=500) #Fenetre #bouton pour commencer le jeu play=Button(canvas, text="jouer",command=ExTimeSpeed) play.place(x=700,y=420) fenetre.mainloop()
Si mon jeu s'arrête là, il n'y a pas de problème.
Il apparait quand j'ajoute à la fin de l'exo, un bouton pour retourner au menu principal. Voici les modifications réalisées:
et :
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 from tkinter import* import fgMenuPC def Menu(): def PlayMenuPC(): '''lance le menu des exercices de physique''' fenetre.destroy() fgMenuPC.MenuPC() #bouton PC PCButtPic=PhotoImage(file ="PCButtPic.gif") PCButt=Button(fenetre, image=PCButtPic,command=PlayMenuPC) PCButt.place(x=600,y=200) fenetre.mainloop() Menu()
Après avoir écrit les lignes pour que le jeu fasse cela, quand je lance fgmain et que j'appuie sur le bouton qui appelle fgMenuPC:
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 from tkinter import* import random import fgmain score=0 Q=10 def ExTime(): '''exercice dilatation du temps''' def BackMenu(): '''retourner au menu''' global score global Q score=0 Q=10 ScoreLab.config(text=["Score:",score]) QLab.config(text=["Question:",Q]) fenetre.destroy() fgmain.Menu() def replay(): ExTime() def ExTimeEnd(): ReplayEnd=Button(PopupEnd, text="rejouer",command=replay) ReplayEnd.place(x=700,y=350) ReturnMenuEnd=Button(PopupEnd, text="menu des matieres",command=BackMenu) ReturnMenuEnd.place(x=700,y=450) def ExTimeCheck(a,b,c): ExTimeEnd() def ExTimeSpeed(): submit=Button(canvas,text="valider",command=lambda r1=answer,r2=TimeM,r3=FrameSpeed:ExTimeCheck(r1,r2,r3)) submit.place(x=700,y=500) ReturnMenu=Button(canvas, text="menu des matieres",command=BackMenu) ReturnMenu.place(x=660,y=450) answer = DoubleVar() play=Button(canvas, text="jouer",command=ExTimeSpeed) play.place(x=700,y=420) fenetre.mainloop()
-AttributeError: module 'fgMenuPC' has no attribute 'MenuPC'
-je ferme donc la fenêtre, mais elle s'ouvre de nouveau automatiquement
-quand je clique de nouveau sur le bouton qui appelle fgMenuPC, tout marche parfaitement.
N.B Désolée, j'ai essayé d'être concise mais le post reste quand même très long. J'espère au moins avoir été clair...
Partager