A voir également:
- [python] cherche aide pour interface graphique
- Changer carte graphique - Guide
- Graphique excel - Guide
- Common interface - Forum TV & Vidéo
- Citizen code python - Guide
2 réponses
Utilisateur anonyme
24 mai 2015 à 09:43
24 mai 2015 à 09:43
Salut,
La même image s'affiche à chaque fois car tu créés tes Canvas avec en paramètre de create_image, image = photo et photo regarde ce que c'est : photo = PhotoImage(file = 'python.gif'). Il s'agit effectivement de la même photo. Il faut que tu fasses varier le paramètre que tu passes à create_image dans image pour ne pas avoir la même chose.
Par exemple, tu pourrais stocker dans une liste photo, l'ensemble de toutes les photos que tu souhaites implémenter.
Après il te reste plus qu'à remplacer photo du paramètre image de create_image par photo[cpt] où cpt est un compteur qui s'incrémente jusqu'à 23 (car le dernier élément de la liste est le numéro 23 et non 24).
La même image s'affiche à chaque fois car tu créés tes Canvas avec en paramètre de create_image, image = photo et photo regarde ce que c'est : photo = PhotoImage(file = 'python.gif'). Il s'agit effectivement de la même photo. Il faut que tu fasses varier le paramètre que tu passes à create_image dans image pour ne pas avoir la même chose.
Par exemple, tu pourrais stocker dans une liste photo, l'ensemble de toutes les photos que tu souhaites implémenter.
photo1 = PhotoImage(file = 'python.gif') photo2 = PhotoImage(file = 'boy.gif') photo3 = # ... etc pour tes 24 photos photo = [photo1,photo2,photo3,...,photo24]
Après il te reste plus qu'à remplacer photo du paramètre image de create_image par photo[cpt] où cpt est un compteur qui s'incrémente jusqu'à 23 (car le dernier élément de la liste est le numéro 23 et non 24).
d'accord merci beaucoup pour ta réponse. Par contre pour cpt je n'est pas vraiment comprit, je doit remplacer cpt par quelque chose ?
Je sais je ne suis pas doué du tout, mais ca ne fonctionne pas. peut etre que je n'ai pas ecrit la bonne chose, j'ai essayé de comprendre ce que c'était d'incrémenter mais j'ai encore un peu de mal.
Voila mon code, j'ai définit cpt :
Voila mon code, j'ai définit cpt :
photo0 = PhotoImage(file = 'belle.gif')
photo1 = PhotoImage(file = 'elsa.gif')
photo2 = PhotoImage(file = 'john.gif')
photo3 = PhotoImage(file = 'eric.gif')
photo4 = PhotoImage(file = 'peterpan.gif')
photo5 = PhotoImage(file = 'tarzan.gif')
photo=[photo0,photo1,photo2,photo3,photo4,photo5]
cpt=0
for i in range(4):
for j in range(6):
canvas = Canvas(fenetre, width =130, height =130, bg ='white')
canvas.create_image(65, 65, image =photo[cpt])
canvas.grid(row=0, column=0)
Oui, c'est bien. Le problème c'est que ton compteur cpt vaut toujours 0. A aucun moment tu ne le fait changer de valeur. L'incrémentation d'une variable (ici cpt) c'est augmenter de 1 quand un tour de boucle est réalisé. Un exemple basique :
Exécute ce code pour comprendre l'incrémentation. Ici, il te manque juste l'étape : augmenter de 1 quand un tour de boucle est réalisé.
cpt = 0 while cpt<20: print(cpt) cpt = cpt + 1 # ou cpt += 1
Exécute ce code pour comprendre l'incrémentation. Ici, il te manque juste l'étape : augmenter de 1 quand un tour de boucle est réalisé.