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 :

afficher un gif ou une video


Sujet :

Tkinter Python

  1. #1
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut afficher un gif ou une video
    Bonjour,
    Je suis sous python 3.5 64bits sous windows7
    Je galère depuis 2 jours pour intégrer dans une fenêtre tkinter un simple gif animé, y'a plein de solution proposé sur stackoverflow (le canvas, le chargement de toute les frame de la gif 1 par 1...etc), mais aucune n'a fonctionné chez moi.

    Se serait pour mettre une animation dans une fenêtre de chargement, actuellement au lieu de mettre un gif j'envisage éventuellement de mettre une vidéo qui tourne en boucle, dans l’éventualité ou je n'y arriverais pas.

    La solution pour le gif que j'ai pensé être la plus fonctionnel sans se taper 100 lignes de code me semblerais être le canvas ? es ce possible de le faire avec ?

    Merci d'avance pour m'aiguiller des pistes.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par sazearte Voir le message
    Je galère depuis 2 jours pour intégrer dans une fenêtre tkinter un simple gif animé, y'a plein de solution proposé sur stackoverflow (le canvas, le chargement de toute les frame de la gif 1 par 1...etc), mais aucune n'a fonctionné chez moi.
    Si vous ne montrez pas le code que vous avez fait/récupéré en prenant le temps d'expliquer pourquoi çà ne fonctionne pas, on ne peut que vous proposer d'explorer une solution discutée dans le forum comme celle-ci.

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

  3. #3
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Bonjour est merci de m'avoir répondue.

    Votre lien montre une solution avec le canvas.

    Mais il y'a le même problème que je rencontre, l'image ne bouge pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    from tkinter import *
    import time
     
    fen = Tk()
     
    can = Canvas(fen, width=350, height=200, bg='white')
    can.pack(side='top', fill='both', expand='yes')
    photo = PhotoImage(file="loading.gif")
    can.create_image(0,0,anchor='nw', image=photo)
     
    for ind in range(8):
        photo.configure(format="gif -index " + str(ind))
        #time.sleep(1)
        can.update_idletasks()
     
    fen.mainloop()
    j'ai rajouter un sleep(1) défois que sa se mettais a jours trop rapidement, mais sa ne change rien.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Essayez avec cette mouture là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    from tkinter import *
    import time
     
    fen = Tk()
     
    can = Canvas(fen, width=350, height=200, bg='white')
    can.pack(side='top', fill='both', expand='yes')
    photo = PhotoImage(file="120430.gif")
    can.create_image(0,0,anchor='nw', image=photo, tag='photo')
     
    ind = -1
    def update(delay=200):
        global ind
        ind += 1
        if ind == 8: ind = 0
        print (ind)
        photo.configure(format="gif -index " + str(ind))
        fen.after(delay, update)
     
    update()
    fen.mainloop()
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    merci sa marche,
    encore une question:

    tu mets dans ton code ceci:
    au lieu de 8 serait il possible de lui dire le nombre de frame dans la gif ?

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par sazearte Voir le message
    au lieu de 8 serait il possible de lui dire le nombre de frame dans la gif ?
    La seule option que connait Photo est -index. Pas possible de connaître le nombre de frames dans le GIF sauf à utiliser PIL ou gérer l'exception remontée lorsque l'index est trop grand.

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

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

Discussions similaires

  1. Afficher une video dans une page web
    Par dorwin dans le forum Oracle
    Réponses: 0
    Dernier message: 27/03/2009, 16h58
  2. Comment afficher une image 'gif' dans une interface
    Par LMU2S dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 17/03/2008, 10h31
  3. Afficher un gif loading en attendant le chargement d'une image
    Par gandoulfe dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 10/03/2008, 17h59
  4. Afficher une video dans une JFrame
    Par hakim11 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 09/11/2007, 11h07
  5. Afficher l'image d'une video
    Par glub0xxl dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/06/2007, 15h35

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