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 

Votre réponse

3 réponses

Meilleure réponse
lespinx 96 Messages postés lundi 9 octobre 2006Date d'inscription 24 février 2018 Dernière intervention - 1 avril 2014 à 11:42
8
Merci
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)


--

Merci lespinx 8

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de lespinx
Mints 70 Messages postés mercredi 1 novembre 2000Date d'inscription 1 juin 2018 Dernière intervention - Modifié par Mints le 31/03/2014 à 19:39
0
Merci
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
Merci
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.