Faire apparaitre/disparaitre un widget tkinter bouton [Résolu]

Erdis 7 Messages postés vendredi 6 juin 2008Date d'inscription 31 mai 2014 Dernière intervention - 31 mars 2014 à 12:42 - Dernière réponse : Erdis 7 Messages postés vendredi 6 juin 2008Date d'inscription 31 mai 2014 Dernière intervention
- 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()
Afficher la suite 

3 réponses

Répondre au sujet
lespinx 96 Messages postés lundi 9 octobre 2006Date d'inscription 24 février 2018 Dernière intervention - 1 avril 2014 à 11:42
+4
Utile
Bonjour,

Pour info:
Rendre un bouton invisible:
Bouton.pack_forget()

Remettre un bouton visible:
Bouton.pack()

Rendre un bouton inactif:
Bouton.config(state = DISABLED)

Rendre un bouton actif:
Bouton.config(state = NORMAL)


--
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lespinx
Mints 67 Messages postés mercredi 1 novembre 2000Date d'inscription 18 février 2018 Dernière intervention - Modifié par Mints le 31/03/2014 à 19:39
0
Utile
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.

--
Commenter la réponse de Mints
Erdis 7 Messages postés vendredi 6 juin 2008Date d'inscription 31 mai 2014 Dernière intervention - 9 avril 2014 à 20:35
0
Utile
Merci pour vos explications. Elles confirment mon impression, à savoir que le bouton disparait mais existe toujours. Avec la méthode 'forget', cela fonctionne bien.

Je passe le sujet en résolu.

Cordialement,

Erdis
Commenter la réponse de Erdis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.