Partage
  • Partager sur Facebook
  • Partager sur Twitter

impossible de changer l'image dans un canvas

Sujet résolu
    19 octobre 2020 à 10:32:24

    Bonjour,

    Je ne parvient pas a changer l'image dans un Canvas, voici mon code

    #création du canvas et de l'image
    image_debut = PhotoImage(file="EtatMenu.png")
    canvas = Canvas(fen, width = 500, height = 583, bg='#f5fae7')
    canvas.create_image((250,300),image=image_debut)
    canvas.place(x=-70,y=50)
    Etat1 = PhotoImage(file="Etat1.png")
    Etat2 = PhotoImage(file="Etat2.png")

    Plus loin dans mon code j'ai cette fonction:

    def Cree_Image(nbr_essait):
    
        if nbr_essait == 0:
            canvas.itemconfig(image_debut, image=Etat1)
            canvas.coords(Etat5,250,300)
            print("change1")
            return
        elif nbr_essait == 1:
            canvas.itemconfig(Etat1, image=Etat2)
            print("change2")
            return

    J'obtiens bien "change1" dans la consoles mais l'image reste inchangée, je ne comprend pas.

    Merci.


    • Partager sur Facebook
    • Partager sur Twitter
      19 octobre 2020 à 14:02:46

      image_debut est un photoimage alors que ce devrait être l'entier retourné par .create_image... pareil pour Etat1.
      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2020 à 16:25:15

        j'ai pas compris,  je dois faire quoi réellement ?
        • Partager sur Facebook
        • Partager sur Twitter
          19 octobre 2020 à 17:23:09

          julienserin a écrit:

          j'ai pas compris,  je dois faire quoi réellement ?


          Ouvrir la documentation de Canvas, apprendre ce qu'est un item crée par .create_xyz, jouer à changer la couleur d'un rectangle pour voir si vous avez compris, puis reprendre votre code à zéro parce que pour l'instant, c'est un peu n'importe quoi.

          -
          Edité par mps 19 octobre 2020 à 17:23:25

          • Partager sur Facebook
          • Partager sur Twitter
            19 octobre 2020 à 18:56:19

            la doc du canvas => https://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.create_image-method 
            image_debut et Etat sont tes images, mais pas l'item image créé par le canvas (tu accèdes à celle-ci par l'id renvoyée par create_image)
            • Partager sur Facebook
            • Partager sur Twitter
              20 octobre 2020 à 10:07:49

              J'ai finalement réussi a faire marcher sa, j'ai juste modifiez la fonction Cree_Image:

              def Cree_Image(nbr_essait):
              
                  if nbr_essait == 0:
                      canvas.delete(ALL)
                      canvas.create_image((250,300),image=Etat1)
                      return
                  elif nbr_essait == 1:
                      canvas.delete(ALL)
                      canvas.create_image((250,300),image=Etat2)
                      return



              • Partager sur Facebook
              • Partager sur Twitter
                20 octobre 2020 à 11:29:36

                ça fonctionne parce que tu n'as qu'une image dans ton canvas, sinon il faudrait remettre tous les autres éléments qui étaient dedans.

                notre conseil allait plutôt dans le sens:

                id_canvas_image=canvas.create_image((250,300),image=image_debut) #on récupére l'id de l'image crée sur le canvas
                ...
                canvas.itemconfig(id_canvas_image, image=Etat1)
                ...
                canvas.itemconfig(id_canvas_image,image=image_debut)



                • Partager sur Facebook
                • Partager sur Twitter

                impossible de changer l'image dans un canvas

                × 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