cr03
Messages postés3Date d'inscriptionsamedi 21 juin 2014StatutMembreDernière intervention22 juin 2014
-
21 juin 2014 à 18:02
Mints
Messages postés69Date d'inscriptionmercredi 1 novembre 2000StatutMembreDernière intervention 1 juin 2018
-
26 juin 2014 à 09:59
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 :)
Mints
Messages postés69Date d'inscriptionmercredi 1 novembre 2000StatutMembreDernière intervention 1 juin 20187 21 juin 2014 à 21:00
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:
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)
Mints
Messages postés69Date d'inscriptionmercredi 1 novembre 2000StatutMembreDernière intervention 1 juin 20187 26 juin 2014 à 09:59
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:
Modifié par cr03 le 21/06/2014 à 23:03
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 :/