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 :

Petit soucis avec Tkinter


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Par défaut Petit soucis avec Tkinter
    Salut à tous,

    je voudrais faire quelquechose de très simple : Dans un canvas, j'ai chargé une image. Puis, je voudrais qu'au clic sur un bouton, une autre image s'affiche pendant 2 secondes puis remettre l'ancienne. Changer l'image, je sais faire. Attendre 2 secondes, aussi. Sauf que là, les deux simultanément ça ne fonctionne pas : L'ordi attend 2 secondes puis change l'image ! Voilà ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Canevas.itemconfig(item,image=photo2)
    sleep(2)
    Canevas.itemconfig(item,image=photo1)
    Je précise que sans les 2 secondes d'attente, et sans remettre la photo1, la photo2 se charge bien. J'ai l'impression qu'il y a un petit délai de chargement et que l'ordi exécute le sleep avant que l'image n'ait eu le temps de se carhger : du coup, elle finit de se charger après les 2 secs !
    J'ai tenté avec after, mais le résultat est le même. Quelqu'un aurait-il une idée ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Lorsqu'on appuie sur le Button, tkinter appelle le callback associé.
    Toutes les modifications de l'affichage seront des évènements que tkinter ne pourra traiter avant qu'il se termine. Donc si on lui dit: "affiche l'image1", "attends 2s.", "affiche l'image2". Lorsque le callback se termine, affichera l'image1 puis immédiatement après l'image2.
    Et les 2 secondes d'attente n'ont fait que geler l'affichage: pendant tout ce temps là, aucun événement ne sera traité.... Une bonne raison pour ne pas utiliser time.sleep.

    Dans ce cas, on peut demander à tkinter d'appeler une fonction après un certain délai avec .after:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Canevas.itemconfig(item,image=photo2)
        Canevas.after(2000, lambda: Canevas.itemconfig(item,image=photo1))
    Mais çà serait pas mal d'ouvrir un tuto. pour apprendre comment fonctionne tkinter et ses utilisations de base.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Par défaut
    Merci beaucoup.
    Je me doutais bien qu'il y avait un truc du genre
    Et je voyais bien l'utilité du "after" mais je ne l'utilisais pas correctement !

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par supercyprien Voir le message
    Et je voyais bien l'utilité du "after" mais je ne l'utilisais pas correctement !
    Ce ne sont pourtant pas les exemples qui manquent.
    En tout cas, pensez à marquer la discussion

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. petit soucis avec mon graveur
    Par Vador dans le forum Périphériques
    Réponses: 8
    Dernier message: 02/11/2005, 14h58
  2. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08
  3. Petit souci avec clause where
    Par ybruant dans le forum SQL
    Réponses: 1
    Dernier message: 21/07/2005, 22h10
  4. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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