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
A voir également:
- Tk fond d'écran
- Double ecran - Guide
- Comment mettre une vidéo en fond d'écran - Guide
- Capture d'écran whatsapp - Accueil - Messagerie instantanée
- Retourner ecran pc - Guide
- Capture d'écran samsung - Guide
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.
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.
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.