¿Cómo usar imágenes como fondos en Tkinter?

requisito previo :

En este artículo, vamos a escribir una imagen de uso del programa en segundo plano. En Tkinter, no hay una función incorporada para imágenes, por lo que se puede usar como imagen de fondo. Se puede hacer con varios métodos:

Método 1: Usando métodos de fotoimagen .

Cuando se trata de una aplicación basada en GUI, las imágenes juegan un papel vital. Desde el ícono de la aplicación hasta la animación, es útil.

Para mostrar imágenes en etiquetas, botones, lienzos y widgets de texto, se utiliza la clase PhotoImage , que está presente en el paquete Tkinter.

Código:

Python3

# Import module 
from tkinter import *
  
# Create object 
root = Tk()
  
# Adjust size 
root.geometry("400x400")
  
# Add image file
bg = PhotoImage(file = "Your_image.png")
  
# Show image using label
label1 = Label( root, image = bg)
label1.place(x = 0, y = 0)
  
label2 = Label( root, text = "Welcome")
label2.pack(pady = 50)
  
# Create Frame
frame1 = Frame(root)
frame1.pack(pady = 20 )
  
# Add buttons
button1 = Button(frame1,text="Exit")
button1.pack(pady=20)
  
button2 = Button( frame1, text = "Start")
button2.pack(pady = 20)
  
button3 = Button( frame1, text = "Reset")
button3.pack(pady = 20)
  
# Execute tkinter
root.mainloop()

Producción:

Como puede ver, el color de fondo de los botones y las etiquetas es diferente al color de la imagen.

La solución es establecer el color de fondo de los botones y etiquetarlo como el color de la imagen con este color. 

Python3

# Import module 
from tkinter import *
  
# Create object 
root = Tk()
  
# Adjust size 
root.geometry("400x400")
  
# Add image file
bg = PhotoImage( file = "Your_img.png")
  
# Show image using label
label1 = Label( root, image = bg)
label1.place(x = 0,y = 0)
  
# Add text
label2 = Label( root, text = "Welcome",
               bg = "#88cffa")
  
label2.pack(pady = 50)
  
# Create Frame
frame1 = Frame( root, bg = "#88cffa")
frame1.pack(pady = 20)
  
# Add buttons
button1 = Button( frame1, text = "Exit")
button1.pack(pady = 20)
  
button2 = Button( frame1, text = "Start")
button2.pack(pady = 20)
  
button3 = Button( frame1, text = "Reset")
button3.pack(pady = 20)
  
# Execute tkinter
root.mainloop()

Producción:

Nota: este método no funcionará para varios colores en la imagen.

Método 2: Uso de los métodos de Canvas .

Acercarse:

  • Igual que la implementación anterior.
  • Agregar archivo de imagen.
  • Crea un lienzo y establece el ancho y la altura.
  • Muestre la imagen usando create_image.
  • Establece el texto usando create_text.
  • Crear botones.
  • Paso final Agregar botón usando create_window.

Código:

Python3

# Import module 
from tkinter import *
  
# Create object 
root = Tk()
  
# Adjust size 
root.geometry("400x400")
  
# Add image file
bg = PhotoImage(file = "Your_img.png")
  
# Create Canvas
canvas1 = Canvas( root, width = 400,
                 height = 400)
  
canvas1.pack(fill = "both", expand = True)
  
# Display image
canvas1.create_image( 0, 0, image = bg, 
                     anchor = "nw")
  
# Add Text
canvas1.create_text( 200, 250, text = "Welcome")
  
# Create Buttons
button1 = Button( root, text = "Exit")
button3 = Button( root, text = "Start")
button2 = Button( root, text = "Reset")
  
# Display Buttons
button1_canvas = canvas1.create_window( 100, 10, 
                                       anchor = "nw",
                                       window = button1)
  
button2_canvas = canvas1.create_window( 100, 40,
                                       anchor = "nw",
                                       window = button2)
  
button3_canvas = canvas1.create_window( 100, 70, anchor = "nw",
                                       window = button3)
  
# Execute tkinter
root.mainloop()

Producción:

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *