Fonction command d'un bouton tkinter défini dans une fonctio

Résolu
Maxime320Y -  
 Maxime320Y -
Bonjour,

Je suis en train programmer le jeu du démineur avec la bibliothèque Tkinter de Python. Cependant je rencontre un problème que le programme suivant résume bien :

from tkinter import *

root=Tk()

def command_btn():
    btn.destroy()

def spawn_btn():
    btn=Button(root,text='Hello World',command=command_btn)
    btn.pack()

spawn_btn()
root.mainloop()


La fonction command_btn ne reconnait pas btn. Je me suis demandé si je devais passer par une classe mais j'attends d'abord d'avoir vos avis...

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    une possibilité:
    def command_btn():
        root.MonBouton.destroy()
    
    def spawn_btn():
        root.MonBouton=Button(root,text='Hello World',command=command_btn)
        root.MonBouton.pack()

    une autre:
    def command_btn():
        MonBouton.destroy()
    
    def spawn_btn():
        btn=Button(root,text='Hello World',command=command_btn)
        btn.pack()
        return btn
    
    MonBouton=spawn_btn()
    0
    1. Maxime320Y
       
      Merci beaucoup, c'est parfait !
      0