Problème liste (Python - Tkinter)
Bonjour, je cherche à créer une liste depuis plusieurs jours, mais il y a toujours un message d'erreur qui s'affiche... Voici mon code et mon message d'erreur, si quelqu'un peut m'aider ? Merci beaucoup.
Code:
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
| import tkinter as tk
import os
from PIL import Image, ImageTk
root = tk.Tk()
dx = tk.IntVar()
dy = tk.IntVar()
canvas=tk.Canvas(root, width=500, height=400, bg='white')
canvas.pack(padx=10,pady=10)
#Chemin pour les images
script_dir = os.path.dirname(__file__)
rel_path = "/images/"
abs_file_path = script_dir + rel_path
images = [0]*12
noms = ["clarys", "baptiste", "anais", "allan", "arnold", "thomas", "ayoub", "caroline", "deborah", "louis", "paul", "nono"]
for i in range(12):
images[i] = Image.open(abs_file_path + noms[i] + ".png")
photo = ImageTk.PhotoImage(images[i])
canvas.create_image(180,0,image=photo)
for uneimage in images[i] :
dx.set(0)
dy.set(5)
if canvas.coords(uneimage)[1]>400 :
canvas.coords(uneimage,180,0)
canvas.move(uneimage,dx.get(),dy.get())
root.mainloop() |
le message d'erreur est annoncé ligne 34 :
for uneimage in images[i] :
TypeError: 'PngImageFile' object is not iterable
Problème liste (Python - Tkinter)
Bonjour, je repose un sujet ici à cause d'un problème de liste que je n'arrive pas à régler depuis plusieurs jours !!! Je cherche sur tous les tutos, leçons etc.... rien ne m'aide réellement. Si quelqu'un peut m'aider s'il vous plaît !! Je ne demande pas que l'on me donne le programme tout prêt mais surtout qu'on m'explique pour que je sache pour la prochaine fois, je veux apprendre ! Je sais je suis vraiment une débutante :( Merci d'avance.
Code:
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
| import tkinter as tk
import os
from PIL import Image, ImageTk
root = tk.Tk()
dx = tk.IntVar()
dy = tk.IntVar()
canvas=tk.Canvas(root, width=500, height=400, bg='white')
canvas.pack(padx=10,pady=10)
#Chemin pour les images
script_dir = os.path.dirname(__file__)
rel_path = "/images/"
abs_file_path = script_dir + rel_path
images = [0]*12
noms = ["clarys", "baptiste", "anais", "allan", "arnold", "thomas", "ayoub", "caroline", "deborah", "louis", "paul", "nono"]
for i in range(12):
images[i] = Image.open(abs_file_path + noms[i] + ".png")
photo = ImageTk.PhotoImage(images)
canvas.create_image(180,0,image=photo)
for uneimage in images:
dx.set(0)
dy.set(5)
if canvas.coords(uneimage)[1]>400 :
canvas.coords(uneimage,180,0)
canvas.move(uneimage,dx.get(),dy.get())
root.mainloop() |
Voici mon message d'erreur :
File "/Users/FamilleDude/anaconda3/lib/python3.6/site-packages/PIL/ImageMode.py", line 55, in getmode
return _modes[mode]
TypeError: unhashable type: 'list'
Merci!!!
Ouvrir une liste d'image sur un canvas
Bonjour, j'ai créer une liste et désormais je souhaite afficher mes images, elles s'affiche sans soucis cependant, le problème est qu'elle s'affiche toute au même endroit alors comment faire pour les mettres a différents endroits ?
Code:
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
| import tkinter as tk
import os
from PIL import Image, ImageTk
root = tk.Tk()
dx = tk.IntVar()
dy = tk.IntVar()
canvas=tk.Canvas(root, width=500, height=400, bg='white')
canvas.pack(padx=10,pady=10)
#Chemin pour les images
script_dir = os.path.dirname(__file__)
rel_path = "/images/"
abs_file_path = script_dir + rel_path
images = []
noms = ["clarys", "baptiste", "anais", "allan", "arnold", "thomas", "ayoub", "caroline", "deborah", "louis", "paul", "nono"]
for i in range(12):
images.append(Image.open(abs_file_path + noms[i] + ".png"))
images[i] = ImageTk.PhotoImage(images[i])
canvas.create_image(180,0,image=images[i])
root.mainloop() |
J'ai essayé de les initialiser toutes sur une ligne en rentrant :
Code:
1 2
| canvas.create_image(180,0,image=images[1])
canvas.create_image(180,50,image=images[2]) |
etc...., mais dans ce cas là ce code erreur s'affiche :
canvas.create_image(180,0,image=images[1])
IndexError: list index out of range
Merci de votre aide !!