Image de fond tkinter
leane_brt
Messages postés
1
Statut
Membre
-
figarau -
figarau -
Bonjour,
Pour mon projet d'ISN au bac, nous avons développé un piano tiles. Nous voulons maintenant mettre une image en fond pour donner un petit peu d'entrain à notre projet.
Avec ce code :
myFile = "piano.gif"
myImage = tk.PhotoImage(file=myFile)
label = tk.Label(fen1, image=myImage)
label_window = can1.create_window(5,20, anchor=tk.NW, window=label)
L'image s'affiche. Problème : elle n'est pas en fond. En effet, nous ne savons pas comme la mettre à l'arrière plan et la redimensionner à la taille de la fenêtre.
Merci de votre réponse rapide, le bac c'est bientôt.
Pour mon projet d'ISN au bac, nous avons développé un piano tiles. Nous voulons maintenant mettre une image en fond pour donner un petit peu d'entrain à notre projet.
Avec ce code :
myFile = "piano.gif"
myImage = tk.PhotoImage(file=myFile)
label = tk.Label(fen1, image=myImage)
label_window = can1.create_window(5,20, anchor=tk.NW, window=label)
L'image s'affiche. Problème : elle n'est pas en fond. En effet, nous ne savons pas comme la mettre à l'arrière plan et la redimensionner à la taille de la fenêtre.
Merci de votre réponse rapide, le bac c'est bientôt.
Configuration: Windows / Firefox 66.0
1 réponse
-
Bonjour,
Mettre un fond sur un canvas se fait avec la méthode create_image du canvas, le label est inutile.
Redimensionner une image se fait avec la méthode zoom de PhotoImage, les paramètres de zoom sont le ratio de la largeur et hauteur.
Un petit exemple.import tkinter as tk window = tk.Tk() temp_img = tk.PhotoImage(file='img.png') zx = int(400 / temp_img.width()) zy = int(300 / temp_img.height()) background_img = temp_img.zoom(zx, zy) can = tk.Canvas(window, width=400, height=300) can.pack() can.create_image(200, 150, image=background_img) window.mainloop()
Mais ton image risque d'être déformée si le zx et zy ont des valeurs trop éloignées.
Il serait sans doute mieux de faire que ton image de fond soit directement à la dimension de ta fenêtre, le zoom devenant alors inutile.