fermer une fenêtre d'une def à partir d'une autre def
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() |