¿Cómo usar una imagen de fondo en tkinter?
#import statements
from Tkinter import *
import tkMessageBox
import tkFont
from PIL import ImageTk,Image
Código para importar imagen:
app = Tk()
app.title("Welcome")
image2 =Image.open('C:\\Users\\adminp\\Desktop\\titlepage\\front.gif')
image1 = ImageTk.PhotoImage(image2)
w = image1.width()
h = image1.height()
app.geometry('%dx%d+0+0' % (w,h))
#app.configure(background='C:\\Usfront.png')
#app.configure(background = image1)
labelText = StringVar()
labelText.set("Welcome !!!!")
#labelText.fontsize('10')
label1 = Label(app, image=image1, textvariable=labelText,
font=("Times New Roman", 24),
justify=CENTER, height=4, fg="blue")
label1.pack()
app.mainloop()
Este código no funciona. Quiero importar una imagen de fondo.
Aceptado
Un método simple es utilizar place
una imagen como imagen de fondo. Este es el tipo de cosas que place
se hacen realmente bien.
Por ejemplo:
background_image=tk.PhotoImage(...)
background_label = tk.Label(parent, image=background_image)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
Luego puede grid
utilizar pack
otros widgets en el padre como de costumbre. Solo asegúrese de crear primero la etiqueta de fondo para que tenga un orden de apilamiento más bajo.
Nota: si está haciendo esto dentro de una función, asegúrese de mantener una referencia a la imagen; de lo contrario, el recolector de basura destruirá la imagen cuando regrese la función. Una técnica común es agregar una referencia como atributo del objeto etiqueta:
background_label.image = background_image
Un código tkinter simple para Python 3 para configurar la imagen de fondo.
from tkinter import *
from tkinter import messagebox
top = Tk()
C = Canvas(top, bg="blue", height=250, width=300)
filename = PhotoImage(file = "C:\\Users\\location\\imageName.png")
background_label = Label(top, image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
C.pack()
top.mainloop