Bonjour,
J'utilise Python 3.2.1
je cherche à fermer une fenêtre ouverte dans une def via une autre def sans obtenir le message d'erreur suivant:
Global name 'Canevas2' is not defined.
En clair: j'ai une def appelée 'Parametrer' dans laquelle je créé une fenêtre 'Parametrage' contenant un canvas et 2 boutons. L'un des boutons appelle une def nommée 'Parametrer_Quitter' afin d'exécuter des trucs en plus de fermer la fenêtre 'Parametrage'. Mais lors du click sur ce bouton, j'obtiens le message d'erreur ci-dessus. C'est un problème de déclaration de variable que je ne comprends pas
Voici mon code:
Code:
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 def main(): pass """Import des librairies""" from tkinter import * #librairie graphique def Parametrer(): """ permettre le parametrage du jeu""" #Variables glocales int_Param_Beep = IntVar(value=0) # 1: la valeur de la case a cocher #Creation de la fenetre de parametre Fenetre_Param = Tk() Fenetre_Param.title('Parametrage') Fenetre_Param.configure(background="pink") # Creation d'un widget Button (bouton Quitter) Button(Fenetre_Param, text ='Valider', command = lambda var=int_Param_Beep:Parametrer_Quitter(var)).pack(side=BOTTOM,padx=5,pady=5) #Creation du canevas Canevas2 = Canvas(Fenetre_Param, width = 200, height =300, bg ='white') Canevas2.pack() #Case aÂ* cocher pour les beeps Checkbox_Beep = Checkbutton(Canevas2, text = "Activer/Desactiver le son", variable = int_Param_Beep) Checkbox_Beep.pack() Checkbox_Beep.select() def Parametrer_Quitter(value): """action de quitter la fenetre du parametrage""" "Ajouter du code pour generer un BIP" "............." "la valeur value est toujours egale a 0" #Quitter la fenetre de parametrage Canevas2.destroy() """ Creation de la fenetre principale""" Mafenetre = Tk() Mafenetre.title('MasterMind') Mafenetre.configure(background="pink") """ Creation d'un widget Canvas contenant le plateau du jeu""" Canevas = Canvas(Mafenetre, width = 400, height =400, bg ='white') Canevas.pack() # Creation d'un widget Button (bouton Parametrer) Button(Mafenetre, text ='Parametrer', command = Parametrer).pack(side=LEFT,padx = 5,pady = 5) # Creation d'un widget Button (bouton Quitter) Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy).pack(side=LEFT,padx=5,pady=5) Mafenetre.mainloop()