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

Résolu
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. Contributeur Ambassadeur
    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. Merci beaucoup, c'est parfait !
      0