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

  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 : 35
    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 : 35
    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

  7. #7
    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'ai un peu changer le 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
     
    n=0
    iD=identifiant[n]
    # Créer une fonction qui fait varier le iD
    def suivant():
        global n
        global iD
        global photo
        while n<len(identifiant):
            iD=identifiant[n]
            photo=PhotoImage(file="C:/Users/Mélissa/Desktop/Projet
    Programmation/GIF/"+iD+".gif")
            n+=1
            label.config(image=photo)

    On doit le mettre où le label.config(image=photo), car si je le mets ici, j'ai un message d'erreur "NameError: global name 'label' is not defined"
    (un peu de mal avec la syntaxe ... )

  8. #8
    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 : 35
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    dans ton cas, c'est "diapo", et tu dois bien entendu le mettre "global"
    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

  9. #9
    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
    HALLELUJAH ! ça fonctionne
    MAIS, (pourquoi toujours un mais...), mon n ne s'incrémente toujours pas à chaque "clicl" sur le bouton. D'ailleurs c'est vraiment bizarre, il reste bloqué à 4 (=len(idenfiant)). J'ai vraiment un pb avec les boucles moi...
    Ce qui fait que je ne peux afficher que 2 photos, la première (identifiant[0]) et la dernière (identifiant[3])

    Comment peut-on faire pour que le n passe de 1, puis 2, puis 3 ...etc à chaque clic sur suivant?

    (puis il faudra faire l'inverse pour le précédent...)

  10. #10
    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 : 35
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Poste le nouveau code, pour que je sache ou tu en 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

  11. #11
    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
    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
    46
    47
    48
    49
    50
    51
    52
    53
    # Diaporama
    print ("debut")
     
    # Selection à partir du fichier "liste"
    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 *
     
    n=0
    iD=identifiant[n]
    # Créer une fonction qui fait varier le iD
    def suivant():
        global n
        global iD
        global photo
        global diapo
        while n<len(identifiant):
            iD=identifiant[n]
            photo=PhotoImage(file="C:/Users/Mélissa/Desktop/Projet Programmation/GIF/"+iD+".gif")
            n+=1
        diapo.config(image=photo)
        print(n)
     
     
     
     
    # Création de l'interface graphique    
     
    # Afficher la photo et la faire varier grâce aux 2 boutons (clic engendre identifiant +1)
    fen=Tk()
    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)
    diapo.pack()
    bou1.pack()
    bou2=Button(fen,text="Photo précédente",command=suivant)
    bou2.pack()
    fen.mainloop()

  12. #12
    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 : 35
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Le while dans ta methode suivant est une (très) mauvaise idee. Ca devrait donc donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def suivant():
        global n
        global iD
        global photo
        global diapo
        if n<len(identifiant):
            iD=identifiant[n]
            photo=PhotoImage(file="C:/Users/Mélissa/Desktop/Projet Programmation/GIF/"+iD+".gif")
            n+=1
        diapo.config(image=photo)
        print(n)
    Ensuite, si tu veux un diapo "circulaire", tu te sers de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    n = (n + 1) % len(identifiant)
    entre autres, len(indentifiant) ne devrait etre calcule qu'une fois, et stoque.
    "identifiant" au singulier rend difficile de penser qu'il s'agit d'une liste.
    "n" ~ "index" / "id_current_photo", ... essaies d'etre plus expressives avec tes variables
    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

  13. #13
    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
    Bonsoir,

    Deux ou trois petites choses.

    global diapo est inutile puisque l'on utilise une méthode d'une instance Tkinter.Label.
    A ce propos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        global n
        global iD
        global photo
        while n<len(identifiant):
            iD=identifiant[n]
    Seul n mérite d’être global.

    Attention à la géométrie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    diapo.pack()
    bou1 = Button(fen, text="Photo suivante", command=suivant)
    diapo.pack()
    Une ou deux fonctions ? Cela fais la même chose en fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def suivant():
        ....
     
    def precedent():
        ....
     
    bou1 = Button(fen, text="Photo suivante", command=suivant)
    bou2 = Button(fen, text="Photo précédente", command=precedent)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def deplacement(n):
        ....
     
    bou1 = Button(fen, text="Photo suivante", command=lambda n=1: deplacement(n))
    bou2 = Button(fen, text="Photo précédente", command=lambda n=-1: deplacement(n))
    Mais bon... Cela passe par lambda et les arguments. Plus compliqué sans doute au début.

    Ceci dit il manque un contrôle sur l'index.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        if n < len(identifiant):
            n += 1
    Est largement insuffisant.

    @+

    Edit: Confusion possible dans le nom des variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def deplacement(dep):
        ....
     
    bou1 = Button(fen, text="Photo suivante", command=lambda d=1: deplacement(d))
    bou2 = Button(fen, text="Photo précédente", command=lambda d=-1: deplacement(d))

  14. #14
    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
    Bonjour,

    Un grand merci pour vos réponses ! Celà m'a apporté une grande aide... J'ai modifié le nom de mes variables.

    PauseKawa :
    Je serais très intéressée de savoir comment on peut définir une fonction commune déplacement !
    Mais alors là, je ne sais pas comment m'y prendre pour qu'elle fonctionne dans "les deux sens".
    Que veut dire le "lambda"? et comment définir une telle fonction svp?

    J'ai essayé avec ça :
    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
    def deplacement(c):
        global iD
        global photo
        global diapo
        c=0
        if c>0:
            iD=identifiants[l]
            photo=PhotoImage(file="C:/Users/Mélissa/Desktop/Projet Programmation/GIF/"+iD+".gif")
            l+=1
        else:
            iD=identifiants[l]
            photo=PhotoImage(file="C:/Users/Mélissa/Desktop/Projet Programmation/GIF/"+iD+".gif")
            l-=1
        diapo.config(image=photo)
     
     
     
     
     
    # Création de l'interface graphique    
     
    # Afficher la photo et la faire varier grâce aux 2 boutons (clic engendre identifiant +1)
    fen=Tk()
    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=deplacement(c+1))
    bou1.pack(side=RIGHT)
    bou2=Button(fen,text="Photo précédente",command=deplacement(c-1))
    bou2.pack(side=LEFT)
    fen.mainloop()
    Mais ça ne fonctionne pas... on me dit que le "c" n'est pas défini...

  15. #15
    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 : 35
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Ta fonction commune deplacement pourrait etre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def deplacement(dep):
        #...
        limit = len(identifiant)
        n = (n + dep) % limit
        iD=identifiant[n]
        photo=PhotoImage(file="C:/Users/Mélissa/Desktop/Projet Programmation/GIF/"+iD+".gif")
        diapo.config(image=photo)
        print(n)
    Le modulo (%) permet de conserver les nombres positifs, et de se deplacer de maniere circulaire dans les 2 sens. 9, 0, 1 ou 1, 0, 9, (En supposant qu'on ait 10 images).

    le "lambda" permet de definir des fonctions "en-ligne"
    par exemple: est une fonction qui retourne le carre d'un element <x>, passe en parametre.
    Ayant donc ta fonction deplacement qui prend un parametre en entree, tu peux te servir d'un lambda pour chaque bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    btn1 = Tkinter.Button(... command= lambda x=None:deplacement(1))btn2 = Tkinter.Button(... command=lambda x=None:deplacement(-1))
    sauf erreur de ma part, le x est destine au "Event" que passera le gestionnaire d'evennements en cas de clic sur le bouton.

    Au plaisir,
    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

  16. #16
    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
    Ah d'accord merci ! mais je n'ai pas encore vu en cours le "lambda"...
    On ne peut pas faire sans?

  17. #17
    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 : 35
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    si tu dois faire sans, alors...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def suivant(event):
        deplacement(1)
     
    def precedent(event):
        deplacement(-1)
     
    btn1 = Tkinter.Button(... command=suivant)
    btn2 = Tkinter.Button(... command=precedent)
    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

  18. #18
    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
    ah d'accord c'est quand même plus rapide

    mais dans ce cas, le "event" dans les fonction suivant et précédent, correspond au clic du bouton gauche de la souris dans la zone du bouton? c'est bien celà?

    et on le definit dans la partie graphique?

  19. #19
    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 : 35
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    En gros, c'est Tkinter qui se charge d'envoyer/definir ce "event". Ils contient des informations comme le lieu ou l'event a ete genere (les coordonnees x, y) ou on a on clique, le code de l'event, le symbol/nom ("Return", "Escape", "Up", "a", "Control", ... dans le cas de touches clavier) et bien plus.
    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

  20. #20
    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
    D'accord je comprends. Seulement si je marque cela dans mon script, j'ai un message d'erreur qui s'affiche concernant le 'event' et je ne comprends pas comment le faire fonctionné! (Merci pour l'explication)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

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, 00h12
  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, 16h01
  3. [FLASH MX2004] Problème pour faire un bouton play
    Par melanie075 dans le forum Flash
    Réponses: 13
    Dernier message: 16/12/2004, 22h55

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