Image dans une fenêtre

Signaler
Messages postés
3
Date d'inscription
samedi 21 juin 2014
Statut
Membre
Dernière intervention
22 juin 2014
-
Messages postés
69
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
1 juin 2018
-
Bonjour,
Je suis actuellement entrain de crée un programme sur python et j'aimerai mettre une image dans mes fenêtres ,
Si quelqu'un peut m'expliquer comme faire ,
Merci :)

3 réponses

Messages postés
69
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
1 juin 2018
7
Salut, si tu utilise tkinter, tu peux mettre une image dans tous les widgets qui en acceptent une en option comme un 'Label' par exemple, mais tu ne pourra pas la mettre directement dans ta fenêtre principale ni même dans une frame sans passer par la création d'un caneva (canvas) aux même dimensions.

D'abord il faut charger l'image qui, si elle est au format GIF s'importera comme ça :
imageTk = PhotoImage(file="nom_du_fichier_image")
Pour tout autre format(JPG) il te faudra importer le module PIL(pas sûr qu'il soit présent dans les versions 2 de python)

et puis faire :
image = Image.open("nom_du_fichier_image")
imageTk = ImageTk.PhotoImage(image)

Ensuite il faut créer le caneva:
caneva = Canvas(fenetre,width=largeurFenetre,height=hauteurFenetre,bg=couleurFond) par ex.(y'a d'autre options)
caneva.pack()

Il te faudra ensuite faire appel à la méthode du caneva pour dessiner(bliter) l'image dedans:

idTkImage = caneva.create_image(coordX,coordY,image=imageTk)
fenetre.update()

tu peux aussi choisir le point d'encrage(par defaut coin sup gauche) et l'état(visible ou pas) sachant que tout ceci reste modifiable grâce à une méthode du caneva:
caneva.itemconfigure(idTkImage,image=nouvelle_image) par ex.
si tu veux déplacer l'image:
caneva.coords(idTkImage,nvlleCoordX,nvlleCoordY)


En espérant avoir été clair...

A disposition.Mints






--
Messages postés
3
Date d'inscription
samedi 21 juin 2014
Statut
Membre
Dernière intervention
22 juin 2014

Bonjour, merci beaucoup de m'avoir répondu ,
Je suis au début de l'apprentissage de Python donc excusez moi si je pose de drôle de questions ,

def fen_B() :

imageTk=PhotoImage(file="logo-mondial-2014.gif")
image = Image.open("logo-mondial-2014.gif")
imageTk = ImageTk.PhotoImage(image)
cavena=cavenas(Mafenetre_B, anchor=W, width=800, height=300, bg="yellow")
caneva.pack()
idTkImage=cavena_image(800, 300, image=imageTk)
fenetre.update()

Mafenetre_B=Tk()
Mafenetre_B.geometry("800x300")
Mafenetre_B.title('Groupe B')
cavena=cavenas(Mafenetre_B, width=800, height=300, bg="yellow")
caneva.pack()
idTkImage=cavena_image(800, 300, image=imageTk)
fenetre.update()
ent=Label(Mafenetre_B, anchor=W, text='Match Date et Heure Equipe 1 Equipe 2 Resultat',bg="cyan",height=2,width=200)
ent2=Label(Mafenetre_B, anchor=W, text='B1 13 juin, 21h0 Espagne Hollande '+match_B1() ,bg="yellow",height=2,width=200)
ent3=Label(Mafenetre_B, anchor=W, text='B2 13 juin, 23h0 Chili Australie '+match_B2() ,bg="yellow",height=2,width=200)
ent4=Label(Mafenetre_B, anchor=W, text='B3 18 juin, 18h00 Australie Hollande '+match_B3() ,bg="yellow",height=2,width=200)
ent5=Label(Mafenetre_B, anchor=W, text='B4 18 juin, 21h00 Espagne Chili '+match_B4() ,bg="yellow",height=2,width=200)
ent6=Label(Mafenetre_B, anchor=W, text='B5 23 juin, 18h00 Australie Espagne '+match_B5() ,bg="yellow",height=2,width=200)
ent7=Label(Mafenetre_B, anchor=W, text='B6 23 juin, 18h00 Hollande Chili '+match_B6() ,bg="yellow",height=2,width=200)
ent.pack(side=TOP)
ent2.pack(side=TOP)
ent3.pack(side=TOP)
ent4.pack(side=TOP)
ent5.pack(side=TOP)
ent6.pack(side=TOP)
ent7.pack(side=TOP)

J'ai crée cette fenêtre elle marche bien je n'ai pas tout mit la , j'ai essayé votre méthode mais je ne pense pas avoir compris l'idée :/
Messages postés
3
Date d'inscription
samedi 21 juin 2014
Statut
Membre
Dernière intervention
22 juin 2014

Bonjour, merci beaucoup de m'avoir répondu ,
Je suis au début de l'apprentissage de Python donc excusez moi si je pose de drôle de questions ,

def fen_B() :

imageTk=PhotoImage(file="logo-mondial-2014.gif")
image = Image.open("logo-mondial-2014.gif")
imageTk = ImageTk.PhotoImage(image)
cavena=cavenas(Mafenetre_B, anchor=W, width=800, height=300, bg="yellow")
caneva.pack()
idTkImage=cavena_image(800, 300, image=imageTk)
fenetre.update()

Mafenetre_B=Tk()
Mafenetre_B.geometry("800x300")
Mafenetre_B.title('Groupe B')
cavena=cavenas(Mafenetre_B, width=800, height=300, bg="yellow")
caneva.pack()
idTkImage=cavena_image(800, 300, image=imageTk)
fenetre.update()
ent=Label(Mafenetre_B, anchor=W, text='Match Date et Heure Equipe 1 Equipe 2 Resultat',bg="cyan",height=2,width=200)
ent2=Label(Mafenetre_B, anchor=W, text='B1 13 juin, 21h0 Espagne Hollande '+match_B1() ,bg="yellow",height=2,width=200)
ent3=Label(Mafenetre_B, anchor=W, text='B2 13 juin, 23h0 Chili Australie '+match_B2() ,bg="yellow",height=2,width=200)
ent4=Label(Mafenetre_B, anchor=W, text='B3 18 juin, 18h00 Australie Hollande '+match_B3() ,bg="yellow",height=2,width=200)
ent5=Label(Mafenetre_B, anchor=W, text='B4 18 juin, 21h00 Espagne Chili '+match_B4() ,bg="yellow",height=2,width=200)
ent6=Label(Mafenetre_B, anchor=W, text='B5 23 juin, 18h00 Australie Espagne '+match_B5() ,bg="yellow",height=2,width=200)
ent7=Label(Mafenetre_B, anchor=W, text='B6 23 juin, 18h00 Hollande Chili '+match_B6() ,bg="yellow",height=2,width=200)
ent.pack(side=TOP)
ent2.pack(side=TOP)
ent3.pack(side=TOP)
ent4.pack(side=TOP)
ent5.pack(side=TOP)
ent6.pack(side=TOP)
ent7.pack(side=TOP)

J'ai crée cette fenêtre elle marche bien je n'ai pas tout mit la , j'ai essayé votre méthode mais je ne pense pas avoir compris l'idée :/
Messages postés
69
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
1 juin 2018
7
1/ Ton logo semble au format '.gif' donc tu dois juste mettre :
imageTk = PhotoImage(file="logo-mondial-2014.gif")

2/ ce n'est pas des 'cavena' qu'il faut créer, mais des 'canevas' qui en python s'écrit 'Canvas'

3/ pour insérer une image dans ce caneva, il faut utiliser la méthode 'create_image' de ce caneva et lui transmettre l'image et les coordonnées d'insertion en arguments.Sachant que par défaut l'image est insérée par le coin supérieur gauche et que le repère du caneva se situe en haut à gauche de celui-ci, les x croissant vers la droite et les y vers le bas :
idTkImage = caneva.create_image(0,0,image=imageTk)

Ensuite je ne connais pas le reste du programme mais essaie de le poster au format python, pour cela insert-le entre 2 balises de code que tu trouvera au-dessus de la fenêtre d'édition des messages.
ex:
def fen_B() :

    imageTk = PhotoImage(file="logo-mondial-2014.gif")
    
    cavena = Canvas(Mafenetre_B, width=800, height=300, bg="yellow")
    caneva.pack()
    
    idTkImage = caneva.create_image(0,0,image=imageTk)
    fenetre.update()



--