Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher une image dans un canvas avec un bouton.

    12 mai 2014 à 19:42:47

    Bonjour à tous !

    J'ai un problème avec une fonction qui est censée afficher une image dans un canvas (can3) en appuyant sur un bouton. En effet, un simple clic sur le bouton doit faire apparaître une image dans le canvas, mais il n'en est rien ! Non seulement l'image ne s'affiche pas, mais en plus je n'ai aucun message d'erreur !

    Voici le code de mon programme :

    from Tkinter import*
    
    def clesol():
    
        global can3
        photosol = PhotoImage(file ='clesol.gif')
        can3.create_image(72,77, image =photosol)
    
    
    fen1=Tk()
    can3 = Canvas(fen1, width =512, height =130, bg='white')
    can3.grid()
    
    
    CLESOL=Button(fen1,text='Clé de Sol',command=clesol)
    CLESOL.grid()
    
    fen1.mainloop()
    




    Je voudrais vraiment y remédier (cela fait partie de mon projet ISN) le plus vite possible :)

    Je vous remercie d'avance pour vos réponses, et je vous souhaite une bonne soirée / journée ;)

    -
    Edité par Citron_Maudit 12 mai 2014 à 19:44:32

    • Partager sur Facebook
    • Partager sur Twitter
      16 mai 2014 à 21:44:40

      from tkinter import*
       
      def clesol():
       
          global photosol
          can3.delete(ALL)
          can3.create_image(72,77, image =photosol)
       
       
      fen1=Tk()
      global photosol
      can3 = Canvas(fen1, width =512, height =130, bg='white')
      can3.pack()
      photosol = PhotoImage(file ='clesol.gif')
      CLESOL=Button(fen1,text='Clé de Sol',command=clesol)
      CLESOL.pack()
       
      fen1.mainloop()

      Voici la correction, il faut déclarer l'image au bon endroit et la faire passer en variable globale, ceci dit, c'est une solution parmi d'autres.

      -
      Edité par Zeljius 16 mai 2014 à 21:45:23

      • Partager sur Facebook
      • Partager sur Twitter

      Afficher une image dans un canvas avec un bouton.

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown