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

Tkinter Python Discussion :

Error in itemcget()


Sujet :

Tkinter Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut Error in itemcget()
    Bonjour, j'ai un code qui définit un canvas et une fonction :

    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.Tk()
     
    can = tk.Canvas(
        fenetre,
        width=100,
        height=100,
    )
     
    def generator():
     
    myLenght = 99
    for y in range(0,myLenght):
        for x in range(0,myLenght):
              myT = can.itemcget(items2[x][y],'text')

    J'obtiens cette erreur quand je ferme la fenêtre :

    Error in line 2567, in itemcget

    (self._w, 'itemcget') + (tagOrId, '-'+option))
    _tkinter.TclError: invalid command name ".!canvas"
    J'utilise pas de _self dans mon code. Faut-il placer en argument dans la fonction le nom du canvas?

    Pourriez-vous me dire svp d'où vient le problème?

    Cordialement,
    Arsène

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 301
    Points : 6 781
    Points
    6 781
    Par défaut
    Salut,

    Il faut mettre le traceback d'erreur complet parce que là on ne voit pas l'origine de l'erreur.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 292
    Points : 36 788
    Points
    36 788
    Par défaut
    Salut,

    Si "fermer la fenêtre", c'est fenetre.destroy() alors le canvas qu'il contient est aussi détruit... D'où l'erreur _tkinter.TclError: invalid command name ".!canvas" lorsqu'on essaie d'y accéder.

    - W

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si "fermer la fenêtre", c'est fenetre.destroy() alors le canvas qu'il contient est aussi détruit... D'où l'erreur _tkinter.TclError: invalid command name ".!canvas" lorsqu'on essaie d'y accéder.
    J'ai tester sur un code plus simple avec un canvas et là j'ai pas d'erreur.

    Je pense que j'ai trouvé. Ça venait du fait que, dans mon code, je régénère le canvas en cliquant sur un bouton.

    Voici le traceback d'erreur complet :

    Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\myFile\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
    File "C:\myFile\Desktop\MyApp\MonJeu.py", line 331, in generateur
    generator()
    File "C:\myFile\Desktop\MyApp\MonJeu.py", line 491, in generator
    myT = can.itemcget(items2[x][y],'text')
    File "C:\myFile\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 2567, in itemcget
    (self._w, 'itemcget') + (tagOrId, '-'+option))
    _tkinter.TclError: invalid command name ".!canvas"
    generateur et generator sont 2 fonctions. La deuxième s'exécute dans le code de la première, à la fin. Lorsque je la supprime du code de la 1ère fonction, ça résout le problème.

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

Discussions similaires

  1. ERROR: pg_atoi: zero-length string
    Par steelspirit92 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h29
  2. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46
  3. [Kylix] Kylix c++ error
    Par pacpac dans le forum EDI
    Réponses: 2
    Dernier message: 10/06/2003, 16h27
  4. [CR] Print Engine error text
    Par afaraji dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2002, 15h44
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51

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