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 :

invalid command in after script


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut invalid command in after script
    Bonjour,

    J'obtiens un message rouge dans la log de la part de Tkinter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    invalid command name "156099928callit"
        while executing
    "156099928callit"
        ("after" script)
    invalid command name "156099248callit"
        while executing
    "156099248callit"
        ("after" script)
    Je me doute bien que l'erreur est levée par un callback que j'ai passé en argument à une instruction widget.after(), mais j'en ai plusieurs.

    Connaisez vous un moyen d'avoir plus d'informations sur ce type d'erreur ?
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Tu viens sûrement de créer une boucle infinie avec after et si tu ne donnes pas de moyen de sortir de cette boucle, ça doit faire cette erreur.

    Enfin je pense, et sans code difficile à dire...

  3. #3
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Euh, c est pas très jolie, mais ca marche à tous les coups.
    Il vous suffit de parsemer votre de code de "print (infos_relativ_au_after_plus_numero_ligne)" juste avant d appeler "after" L ensemmencement se fait du haut vers le bas (pour ne pas modifier les valeurs des lignes déjà validées.)
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  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
    Je doute que cela fonctionne: La fonction callit() registered par .after() est interne à Tkinter, ce n'est pas l'ID de la fonction mais celle de callit() que vous avez à l'écran.
    Il n'y a pas du thread la dessous ?

    Sinon l'erreur est facile a reproduire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
    root = Tk.Tk()
    val = Tk.IntVar()
    root.after(3, lambda: val.set(1))
    root.after(1, root.destroy)
    root.mainloop()
    input()
    C'est donc bien l'objet qui n’existe plus pour Tkinter (Pas pour Python, ce n'est pas un NameError).


    @+

  5. #5
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    C'est donc bien l'objet qui n’existe plus pour Tkinter (Pas pour Python, ce n'est pas un NameError).
    Je comprends bien, de par les explications, mais le code ne fonctionne pas (je veux dire, ne produit pas d'erreur.) lancé avec: PyScripter
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  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
    Encore lui... (PyScripter).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    patrice@Zeus:~/Bureau$ /usr/bin/python3.1 testerreur.py 
    invalid command name "3076420044callit"
        while executing
    "3076420044callit"
        ("after" script)
     
    patrice@Zeus:~/Bureau$

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

Discussions similaires

  1. Paralleliser des commandes dans un script
    Par MC wacko dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/08/2008, 22h45
  2. Commandes Hyperterminal par script ou autre
    Par Abyss dans le forum Windows
    Réponses: 10
    Dernier message: 28/09/2007, 09h46
  3. commande awk dans script perl
    Par sorilazer dans le forum Langage
    Réponses: 3
    Dernier message: 19/07/2007, 10h16
  4. Commandes SSH dans script php
    Par furtif1 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/03/2007, 19h03
  5. httpd.conf - php5 - Invalid command 'Action'
    Par julien.63 dans le forum Apache
    Réponses: 1
    Dernier message: 21/07/2006, 18h09

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