Erdis
Messages postés7Date d'inscriptionvendredi 6 juin 2008StatutMembreDernière intervention31 mai 2014
-
31 mars 2014 à 12:42
Erdis
Messages postés7Date d'inscriptionvendredi 6 juin 2008StatutMembreDernière intervention31 mai 2014
-
9 avril 2014 à 20:35
Bonjour,
je cherche à faire apparaitre/disparaitre un bouton ('test') dans une fenêtre
tkinter à chaque clic sur un bouton activateur (X). Je ne comprends pas pourquoi
le script ci-dessous ne fonctionne pas (en fait le bouton apparait au premier
clic, disparait au second, mais ne réapparait pas par la suite).
Même s'il y a certainement moyen de procéder différemment, j'aimerais comprendre
pourquoi le script ci-dessous ne fait pas ce que j'attendais.
Dans l'attente de vos commentaires,
Cordialement,
Erdis
from tkinter import * fen=Tk() def activeb3(): global b3 try: b3.destroy() except: b3=Button(text='test') b3.pack() b1=Button(text='X',command=activeb3) b1.pack() fen.mainloop()
Salut, le fait d'écrire 'b3.destroy()' supprime certes le bouton mais la variable 'b3' correspond toujours à l'id attribué par tkinter lors de la 1ère création du boutton. Donc on peut indéfiniment demander un 'destroy' sur l'id sans pour autant en voir le résultat.
Conclusion rajoute 'b3 = None' après le b3.destroy() pour forcer l'exception.
Erdis
Messages postés7Date d'inscriptionvendredi 6 juin 2008StatutMembreDernière intervention31 mai 2014 9 avril 2014 à 20:35
Merci pour vos explications. Elles confirment mon impression, à savoir que le bouton disparait mais existe toujours. Avec la méthode 'forget', cela fonctionne bien.