Affichage de plusieurs images dans un canvas
Résolu
cvan85
Messages postés
59
Statut
Membre
-
cvan85 Messages postés 59 Statut Membre -
cvan85 Messages postés 59 Statut Membre -
Bonjour,
Je souhaite afficher 5 images les unes à côté des autres dans un canvas.
Les images se superposent au lieu d'être à la suite.
Ce doit être évident mais je n'arrive pas à voir ce qui cloche dans mon code.
Merci de votre coup de main.
Claude
Je souhaite afficher 5 images les unes à côté des autres dans un canvas.
Les images se superposent au lieu d'être à la suite.
Ce doit être évident mais je n'arrive pas à voir ce qui cloche dans mon code.
Merci de votre coup de main.
Claude
#!/usr/bin/env python3.9 ####################### # # # New # # # ####################### #import pdb; pdb.set_trace() from tkinter import * import random import os ####### Début du programme principal ############ fi_cart=os.listdir('/users/claude/PYTHON/data/cartes') dico_c={} for i in range(52): dico_c[i] = fi_cart[i] fen1=Tk() fen1.title("NP") fen1.geometry("1000x1000") can_gen=Canvas(fen1, width=950, height=950, bg ="#FEFEE2") can_gen.place(x=30,y=30) for i in range(5): ind=random.randint(1,52) carte=dico_c[ind-1] fich=('/users/claude/PYTHON/data/cartes/' + carte) print(fich) photo=PhotoImage(file=fich) pic=can_gen.create_image((40*(i+1))+(120*i),40, anchor='nw',image=photo) ####### Boucle d'attente d'évènements ############## fen1.mainloop() ####### Effacement fenêtre - Sortie programme ###### fen1.destroy() ####################################################
Configuration: Macintosh / Safari 14.0.2
A voir également:
- Affichage de plusieurs images dans un canvas
- Affichage double ecran - Guide
- Des images - Guide
- Canvas gratuit - Télécharger - Divers Photo & Graphisme
- Windows 11 affichage classique - Guide
- Dans la présentation à télécharger, déplacez l'image dans le cadre sans en modifier la taille. redressez l'image pour que le niveau de la mer soit à l'horizontale. faites correspondre : la ligne avec le niveau de la mer ; le point avec le sommet de la grande voile. combien d'oiseaux sont dans le cadre ? - Forum Word
7 réponses
Bonjour Cvan85,
Essaie ça:
pour voir si la position X de l'image évolue bien
Une remarque: ceci ne sert à rien:
Essaie ça:
x_pos=(40*(i+1))+(120*i) print(x_pos) pic=can_gen.create_image(x_pos,40, anchor='nw',image=photo)
pour voir si la position X de l'image évolue bien
Une remarque: ceci ne sert à rien:
###### Effacement fenêtre - Sortie programme ###### fen1.destroy() ####################################################
Bonjour Phil,
J'ai intégré tes lignes.
X évolue bien (40, 200,360 ...) , mais je n'ai toujours que le dernier tirage à l'écran qui correspond à un abscisse de 600.
Merci par ailleurs de ta remarque sur l'effacement de la fenêtre.
Claude
J'ai intégré tes lignes.
X évolue bien (40, 200,360 ...) , mais je n'ai toujours que le dernier tirage à l'écran qui correspond à un abscisse de 600.
Merci par ailleurs de ta remarque sur l'effacement de la fenêtre.
Claude
Tu as écrit :
Donc tu confirmes que le nom de l'image change aussi à chaque tour de boucle ?
A mon avis, tu ne peux pas utiliser le nom photo pour chaque image
Il faut que tu incrémente la variable photo à chaque tour de boucle, donc en utilisant l'indice i
print(fich)
Donc tu confirmes que le nom de l'image change aussi à chaque tour de boucle ?
A mon avis, tu ne peux pas utiliser le nom photo pour chaque image
Il faut que tu incrémente la variable photo à chaque tour de boucle, donc en utilisant l'indice i
Oui, le print m'affiche bien des noms de fichiers images différents.
Je regarde pour mettre en place ta préco et te fais un retour (et clos de post si ok)
Merci
Je regarde pour mettre en place ta préco et te fais un retour (et clos de post si ok)
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Impecable Phil,
Suis passé par une liste pour générer des noms différents associés au paramètre "image = ..."
J'ai bien mes 5 images qui s'affichent.
Merci
Suis passé par une liste pour générer des noms différents associés au paramètre "image = ..."
J'ai bien mes 5 images qui s'affichent.
Merci
for i in range(5): ind=random.randint(1,52) carte=dico_c[ind-1] fich=('/users/claude/PYTHON/data/cartes/' + carte) print(fich) picture[i]=PhotoImage(file=fich) x_pos=(40*(i+1))+(120*i) print(x_pos) pic=can_gen.create_image(x_pos,40, anchor='nw',image=picture[i])