Problème python command destroy()

Problème python command destroy() - Python - Programmation

Marsh Posté le 30-04-2013 à 11:05:17    

Bonjour, je dois faire un projet sur python, mais j'ai actuellement un problème qui m'empêche de continuer la suite :
 
Dans ce programme ci-dessus, je demande à Python d’exécuter musiquepart_1() dans une sous-fenêtre (que je veux le supprimer plus tard), en cliquant sur le bouton suivant, le programme détruit la fenêtre et en créer une nouvelle. Dans cette nouvelle fenêtre, si l'utilisateur veut continuer le programme, il va cliquer sur suivant, mais malheureusement le programme s'arrête et met cette erreur : NameError: global name 'musique2' is not defined
 
J'ai passé beaucoup de temps à essayer de comprendre le problème mais je suis bloqué
Pourtant les 2 définitions musiquepart_1 et musique part_3 sont des copier/coller à quelques détails près
 

Code :
  1. # -*- coding: cp1252 -*-
  2. from Tkinter import *
  3. import Tkinter
  4. fenetre=Tkinter.Tk()
  5. fenetre.title('Quizz')
  6. fenetre.geometry('1000x600')
  7. def abandonmusique():
  8.     musique.destroy()
  9.     theme()
  10. def nextmusique():
  11.     musique2.destroy()
  12.     theme()
  13. def musiquepart_3():
  14.     import Tkinter
  15.     global fenetre,theme,selection,musique,musiquepart
  16.    
  17.     musique2=Tkinter.Frame(fenetre,width=580, height=600, padx=10, pady=10)
  18.     musique2.pack(side=TOP)
  19.     musique.destroy()
  20.    
  21.     questionM3=Label(musique2,text="Qui est Wolfgang Amadeus Mozart ?: ",font="Arial 13 bold" )
  22.     questionM3.place(x=20,y=80)
  23.     boutonM3A=Tkinter.Checkbutton(musique2,text="un compositeur",font="Arial 13 bold" )
  24.     boutonM3A.place(x=130,y=120)
  25.     boutonM3B=Tkinter.Checkbutton(musique2,text="un guitariste" )
  26.     boutonM3B.place(x=130,y=160)
  27.     boutonM3C=Tkinter.Checkbutton(musique2,text="un comédien",font="Arial 13 bold" )
  28.     boutonM3C.place(x=130,y=200)
  29.    
  30.     BoutonSuivantM1=Button(musique2, text="Suivant",command=nextmusique)
  31.     BoutonSuivantM1.place(x=190,y=520)
  32.    
  33. def musiquepart_1():
  34.     import Tkinter
  35.     global fenetre,theme,selection,musique,musiquepart
  36.    
  37.     musique=Tkinter.Frame(fenetre,width=580, height=600, padx=10, pady=10)
  38.     musique.pack(side=TOP)
  39.    
  40.     questionM1A=Label(musique,text="Combien de symphonies Beethoven a-t-il créer ?: ",font="Arial 13 bold" )
  41.     questionM1A.place(x=20,y=80)
  42.     reponseM1A=Tkinter.Checkbutton(musique,text="8 symphonies",font="Arial 13 bold" )
  43.     reponseM1A.place(x=130,y=120)
  44.     reponseM1B=Tkinter.Checkbutton(musique,text="9 symphonies",font="Arial 13 bold" )
  45.     reponseM1B.place(x=130,y=160)
  46.    
  47.    
  48.     BoutonSuivantM1=Button(musique, text="Suivant",command=musiquepart_3)
  49.     BoutonSuivantM1.place(x=190,y=520)
  50. musiquepart_1()
  51. fenetre.mainloop()


 
Merci de m'aider car là je suis vraiment perdu
PS : Je n'ai pas défini les sous-fenêtre au début du programme car cela donne beaucoup de soucis à la suite, je préfère les afficher dans le programme


Message édité par thmachin57 le 02-05-2013 à 16:10:48
Reply

Marsh Posté le 30-04-2013 à 11:05:17   

Reply

Marsh Posté le 05-08-2013 à 17:39:59    

"    
    musique2=Tkinter.Frame(fenetre,width=580, height=600, padx=10, pady=10)
    musique2.pack(side=TOP)
    musique.destroy()
cela ne te donne pas une petite idée?
Un frame ce n'est ni une variable, ni un objet.
Si tu veux te servir de musique2 il faut peut etre le définir  ;-)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed