FAQ Python
FAQ PythonConsultez toutes les FAQ
Nombre d'auteurs : 11, nombre de questions : 188, dernière mise à jour : 14 juin 2021
canvas.delete
(
Tk.ALL)
Pour afficher une image autre que GIF ou PPM, il vous faudra passer par la bibliothèque
PIL qui est capable de lire tout type d'images.
Avec la fonction ImageTk.PhotoImage, vous créerez une image compatible Tkinter que vous pourrez afficher dans un Canvas par
la méthode create_image(position, **options) où position réprésente les 2 coordonnées du coin en haut à gauche de l'image sachant
que l'image sera aussi positionnée par rapport au paramètre anchor qui par défaut vaut CENTER. Donc pour que l'image soit positionnée
en haut à gauche du Canvas, vous devez utilisez la position 0, 0 et rajouter le paramètre anchor = Tk.NW. Enfin le
paramètre image représente l'image que vous voulez insérer.
Le Canvas ne s'adapte pas par défaut à la place que prennent les éléments que vous dessiner dedans. Donc si l'image que vous insérez est trop grande, vous pouvez
vous assurer qu'elle sera entièrement visible en renseignant les paramètres width et height à la création du Canvas
from
PIL import
Image, ImageTk
import
Tkinter as
Tk
root =
Tk.Tk
(
)
image =
Image.open(
"lenna.jpg"
)
photo =
ImageTk.PhotoImage
(
image)
canvas =
Tk.Canvas
(
root, width =
image.size[0
], height =
image.size[1
])
canvas.create_image
(
0
,0
, anchor =
Tk.NW, image=
photo)
canvas.pack
(
)
root.mainloop
(
)
Pour modifier la couleur d'un item d'un Canvas, il faut tout d'abord que celui-ci supporte l'attribut fill. Ensuite vous pouvez modifier cette attribut par la méthode canvas.itemconfigure(item, fill = NewColor) où item réprésente l'identifiant de l'item à modifier et NewColor la nouvelle couleur.
import
Tkinter as
Tk
root =
Tk.Tk
(
)
canvas =
Tk.Canvas
(
root, height=
100
, width=
200
)
canvas.pack
(
)
oval =
canvas.create_oval
(
20
,20
,70
,70
,width=
2
,fill=
'red'
)
rect =
canvas.create_rectangle
(
90
,20
,140
,70
,width=
2
,fill=
'green'
)
poly =
canvas.create_polygon
(
[160
,45
,175
,20
,190
,45
,175
,70
], width =
2
, fill =
'blue'
)
def
ColorChange
(
):
canvas.itemconfigure
(
oval, fill =
"blue"
)
canvas.itemconfigure
(
rect, fill =
"#67A12B"
)
canvas.itemconfigure
(
poly, fill =
"#001020"
)
btn =
Tk.Button
(
root, text =
"Changer la couleur des objets"
, command =
ColorChange)
btn.pack
(
)
root.mainloop
(
)