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 diaporama : problème de commande du bouton "suivant"


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 44
    Par défaut Afficher un diaporama : problème de commande du bouton "suivant"
    Bonjour à tous !
    Je suis nouvelle dans ce forum, et j'espère pouvoir trouver de l'aide après des heures à me creuser la tête sans succès...

    Je vous explique mon problème :
    J'ai un dossier comprenant un fichier .csv qui contient 3 colonnes (séparées par ";") : une avec des identifiants, une autre avec le nom correspondant, et la dernière avec le prénom. J'ai ensuite un autre dossier nommé "GIF" qui contient des images (gif) dont le nom correspond à l'identifiant du fichier csv. (identifiant.gif)
    Je dois créer un diaporama des portraits, grâce à Tkinter, avec notamment un bouton "photo suivante" et "photo précédente". Pour afficher la première photo, je n'ai aucun soucis, mais impossible de trouver une fonction qui fonctionne pour changer d'image... Mon idée serait de changer le chemin du fichier en fonction de l'identifiant.

    Voici mon code :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    # Diaporama
     
    # Selection à partir du fichier "liste.csv"
    import csv
     
    identifiant=[]
    nom=[]
    prenom=[]
    fichier=open("liste.csv","r")
    contenu=csv.reader(fichier,delimiter=";")
    for row in contenu:
        identifiant.append(row[0])
        nom.append(row[1])
        prenom.append(row[2])
    fichier.close()
     
    from tkinter import *
    from os import *
     
     
    iD=identifiant[0]
     
    # Créer une fonction qui fait varier le iD
    def suivant():
        n=1
        iD=identifiant[n]
        photo=PhotoImage(file="C:/Users/Mélissa/Desktop/Projet Programmation/GIF/"+iD+".gif")
        n+=1
     
    # Création de l'interface graphique    
     
    # Afficher la photo et la faire varier grâce aux 2 boutons 
    fen=Tk()
    print("toto")
    fen.title("Diaporama")
    filename="C:/Users/Mélissa/Desktop/Projet Programmation/GIF/"+iD+".gif"
    photo=PhotoImage(file=filename)
    diapo=Label(fen,image=photo)
    diapo.pack()
    bou1=Button(fen,text="Photo suivante",command=suivant)
    bou1.pack()
    bou2=Button(fen,text="Photo précédente",command=precedent)
    bou2.pack()
    fen.mainloop()
    # FIN
    Je tiens à préciser que j'ai essayer beaucoup d'autre fonction pour suivant(), mais qu'aucune n'a fonctionné ... J'avais entre autre essayé de faire une boucle, pour faire varier le n, afin de me "promener" dans la liste des identifiants.
    Je suis débutante en programmation.
    En esperant pouvoir obtenir de l'aide...

    Merci à tous,
    Mélissa.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Par défaut
    Bonjour Mélissa,

    je ne connais pas Tkinter plus que ca, mais peut-être que ton erreur vient de l'uri de ton fichier
    essaye de remplacer les / par des \ sous windows du moins.

    Cordialement

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 44
    Par défaut
    Non, je ne pense pas que le problème vienne de là, puisque la première image (correspondant à l'identifiant 1 -identifiant[0]-) s'affiche bien dans ma fenêtre graphique... donc.
    Mon soucis c'est que je n'arrive pas à changer "iD" dans le chemin du fichier (cf ligne 36).
    Je voudrais que iD prenne la valeur de identifiant[1], puis de identifiant[2]... lorsqu'on appuie sur le bouton.

  4. #4
    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
    Tu dois rendre n, iD et photo global, et supprimer la ligne "n = 1" dans suivant.

    Entre autre, si tu connais deja les classes, il vaut mieux t'en servir les global a bout de champs, c'est pas tres joli
    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

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 44
    Par défaut
    J'avais effectivement pensé à le faire, mais que pour iD.
    Merci BEAUCOUP ça "commence" à fonctionner

    Le soucis, c'est que maintenant, quand j'appuie, l'ex-photo s'efface, mais il n'y a pas la photo suivante qui apparaît !

    faut-il refaire apparaître le Label dans la fonction ? ou ce n'est pas possible ?

    autre problème, le n ne s'incrémente pas à chaque clic sur le bouton "suivant"... il reste bloqué à 2

    comment celà se fait-il?

  6. #6
    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
    il faut faire un label.config(image=photo) a chaque fois que tu changes d'images c'est a dire dans <suivant>.

    Ton n, qui reste a 2, signifie que tu as laisse le "n = 1" dans <suivant>. Ce "n = 1" tu dois le mettre a la suite de la ligne:
    iD=identifiant[0]
    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

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

Discussions similaires

  1. [C#]Problème sur composant perso (Bouton Transparent)
    Par SLE dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/10/2005, 01h12
  2. [CSS]problème centrage texte de bouton dans une boîte
    Par Aurelius dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 06/09/2005, 17h01
  3. [FLASH MX2004] Problème pour faire un bouton play
    Par melanie075 dans le forum Flash
    Réponses: 13
    Dernier message: 16/12/2004, 23h55

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