IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème avec tkinter canvas.configure


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 12
    Par défaut Problème avec tkinter canvas.configure
    Bonjour!

    Je suis confronté à un problème insoluble. Dans mon programme je veux positionner une image dans mon canevas nommé originalement "canvas".
    je fais donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    image = PhotoImage(file=curBloc.texture)
    canvas.create_image((80*mPos[0])-40,(80*mPos[1])-40,image=image)
    canvas.configure(image=item)
    Cela affiche bien mon image, mais ça produit qu'en même un erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
        return self.func(*args)
      File "C:\Users\utilisateur\Desktop\projet Rpg\Py\Level Editor.pyw", line 42, in Nouveau
        RefreshBloc([x,y])
      File "C:\Users\utilisateur\Desktop\projet Rpg\Py\Level Editor.pyw", line 115, in RefreshBloc
        canvas.configure(image=image)
      File "C:\Python33\lib\tkinter\__init__.py", line 1263, in configure
        return self._configure('configure', cnf, kw)
      File "C:\Python33\lib\tkinter\__init__.py", line 1254, in _configure
        self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
    _tkinter.TclError: unknown option "-image"
    Oui l'erreur est longue, mais le plus interessant, à mon avis, est à la fin. Si quelqu'un à une idée (et l'envie de lire le rapport d'erreur) ça m'aiderais beaucoup

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    image = PhotoImage(file=curBloc.texture)
    im = canvas.create_image((80*mPos[0])-40,(80*mPos[1])-40, image=image)
    canvas.itemconfig(im, image=item)
    Le Canvas n'as effectivement pas d'option 'image', par contre l'item créé avec create_image oui.

    @+

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 12
    Par défaut
    Je m'en doutais, mais le truc étrange, c'est que sans ça, l'image ne s'affiche pas, il ne se passe rien.

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    C'est a dire qu'avec le code suivant votre image ne s'affiche pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    from Tkinter import *  # Mettre tkinter si Python 3.x
    root = Tk()
    canvas = Canvas(root)
    image = PhotoImage(file=curBloc.texture)
    canvas.create_image(0, 0, image=image, anchor="NW")
    canvas.pack()
    root.mainloop()

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 12
    Par défaut
    Oui, l'image ne saffiche pas, en revanche, je ne sais pas si ça peut influer mais en gros je veux afficher mon image de cette façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    fenetre = Tk()
    global canvas
     
    canvas = Canvas(fenetre, width=1280, height=720,bg=bgEdit)
    canvas.pack(padx=5,pady=5)
     
    def RefreshBloc(mPos):
        image = PhotoImage(file=curBloc.texture)
        canvas.create_image((80*mPos[0])-40,(80*mPos[1])-40,image=image)
        canvas.configure()
     
    canvas.bind('<Button-1>',Edit)
     
    fenetre.mainloop()
    Peut-être que le fait que mon affichage soit dans une fonction qui ne se déclenche que plus tard y est pour quelque chose.

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def RefreshBloc(mPos):
        global image
        image = PhotoImage(file=curBloc.texture)
        canvas.create_image((80*mPos[0])-40,(80*mPos[1])-40, image=image)
    Perte de référence.

    @+

    Edit : et pour la petite histoire votre image 'apparaît' en cas d'erreur car la gc n'as pas le temps de la détruire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Problème avec Tkinter: AttributeError: 'function' object has no attribute 'tk'
    Par Ziph0n dans le forum Général Python
    Réponses: 1
    Dernier message: 01/02/2015, 16h41
  2. Problème avec Tkinter
    Par sqdwfgb dans le forum Tkinter
    Réponses: 3
    Dernier message: 26/04/2014, 21h16
  3. MacOS : problème avec Tkinter.Menu
    Par nymformaticien dans le forum Tkinter
    Réponses: 1
    Dernier message: 10/06/2010, 10h13
  4. Probléme avec les Canvas
    Par Noumounthi dans le forum Débuter
    Réponses: 3
    Dernier message: 30/11/2009, 01h53
  5. Problème avec fichier de configurations
    Par ploxien dans le forum Maven
    Réponses: 2
    Dernier message: 02/10/2008, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo