Partage
  • Partager sur Facebook
  • Partager sur Twitter

D'où viens l'erreur ?

Sujet résolu
    23 octobre 2016 à 19:15:05

    Bonjour, je programme une sorte de télécran mais avec une coccinelle qui peut se déplacer dans le Canvas (Canvas de Tkinter) au lieu d'un trait. Mais quand j’exécute le programme j'obtient cette erreur : "TclError: bad screen distance "pyimage1". Je ne l'ai jamais eue auparavant du coup je ne la comprends pas et je ne sais pas corriger mon programme.

    Le voici :

    from Tkinter import *
    # Les fonctions si dessous seront finies plus tard
    def haut() :       # Création des fonctions relatives aux changement de direction
        global x1, y1
    
    def bas() :
        global x2, y2
    
    def droite() :
        global x3, y3
    
    def gauche() :
        global x4, y4
    
    fen = Tk()          # Création de la fenêtre et intégration des options
    fen.geometry("1000x500")
    fen.resizable(width = False, height = False)
    fen.title("Télécran de coccinelles")
    
    xd, yd = 500, 250          # Coordonnées du point de départ
    
    fondecran = Canvas(fen, bg = "white", height = 500, width = 900)         # Création du fond d'écran où le dessin sera placé
    fondecran.place(x = -2, y = -2)
    
    CocH = PhotoImage(file = "G:\Florian\Python\Images\H8\cocH.gif")
    Cdepart = fondecran.create_image(CocH, str(xd), str(yd))       # Placement de la coccinelle au point de départ
    
    CocB = PhotoImage(file = "G:\Florian\Python\Images\H8\cocB.gif")      # Import des autres images de coccinnelles (vers le bas, à gauche et à droite)
    CocD = PhotoImage(file = "G:\Florian\Python\Images\H8\cocD.gif")
    CocG = PhotoImage(file = "G:\Florian\Python\Images\H8\cocG.gif")
    
    BHaut = Button(fen, text = "Haut", width = 10, command = haut)      # Création des boutons pour faire bouger le point
    BBas = Button(fen, text = "Bas", width = 10, command = bas)
    BDroite = Button(fen, text = "Droite", width = 10, command = droite)
    BGauche = Button(fen, text = "Gauche", width = 10, command = gauche)
    
    BHaut.place(x = 910, y = 50)        # Placement des boutons qui font bouger le point
    BBas.place(x = 910, y = 250)
    BDroite.place(x = 910, y = 350)
    BGauche.place(x = 910, y = 450)
    
    fen.mainloop()


     

    -
    Edité par I-Scryper 23 octobre 2016 à 19:17:39

    • Partager sur Facebook
    • Partager sur Twitter
      23 octobre 2016 à 20:22:57

      Pourquoi mets-tu les coordonnées au format str (ligne 26):

      Cdepart = fondecran.create_image(CocH, str(xd), str(yd))
                                              ^        ^


      PS: Pour la prochaine fois, n'oublie pas de préciser la ligne qui génère l'erreur ;)

      • Partager sur Facebook
      • Partager sur Twitter
      Précepte: Le mieux est l'ennemi du bien
        24 octobre 2016 à 17:48:33

        Olygrim a écrit:

        Pourquoi mets-tu les coordonnées au format str (ligne 26):

        En fait je l'ai repris d'un autre programme où j'ai dû les mettre en format string, je pense que j'ai oublié de changer ça quand je l'ai modifié.

        Olygrim a écrit:


        PS: Pour la prochaine fois, n'oublie pas de préciser la ligne qui génère l'erreur ;)


        J'ai oublié désolé :lol:

        J'ai retiré les "str()" mais j'obtient la même erreur (ligne 27 ^^)




        -
        Edité par I-Scryper 24 octobre 2016 à 17:50:58

        • Partager sur Facebook
        • Partager sur Twitter
          24 octobre 2016 à 18:23:03

          Ok, je viens de comprendre l'erreur. L'image ne doit pas être mise en premier argument (ce sont les coordonnées qu'il faut mettre). Et l'image s'ajoute grâce au paramètre ... image ;):

          Cdepart = fondecran.create_image(xd, yd, image=CocH)
          • Partager sur Facebook
          • Partager sur Twitter
          Précepte: Le mieux est l'ennemi du bien
            24 octobre 2016 à 19:24:59

            Ah ouais juste ! 😂 

            Merci, j'avais pas vu cette erreur de syntaxe.

            • Partager sur Facebook
            • Partager sur Twitter

            D'où viens l'erreur ?

            × 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