Python | Agregar imagen en un botón Tkinter

Tkinter es un módulo de Python que se utiliza para crear aplicaciones GUI (interfaz gráfica de usuario) con la ayuda de una variedad de widgets y funciones. Como cualquier otro módulo GUI, también admite imágenes, es decir, puede usar imágenes en la aplicación para hacerla más atractiva.

La imagen se puede agregar con la ayuda del PhotoImage()método. Este es un método Tkinter, lo que significa que no tiene que importar ningún otro módulo para poder usarlo.

Importante: Si tanto la imagen como el texto se dan en el Botón , el texto será dominado y solo aparecerá la imagen en el Botón. Pero si desea mostrar tanto la imagen como el texto, debe pasar el compuesto en las opciones del botón.

Button(master, text = "Button", image = "image.png", compound=LEFT)

compound = LEFT-> la imagen estará en el lado izquierdo del botón
compound = RIGHT-> la imagen estará en el lado derecho del botón
compound = TOP-> la imagen estará en la parte superior del botón
compound = BOTTOM-> la imagen estará en la parte inferior del botón

Sintaxis:

photo = PhotoImage(file = "path_of_file")

path_of_file es cualquier ruta válida disponible en su máquina local.

Código #1:

# importing only those functions
# which are needed
from tkinter import * 
from tkinter.ttk import *
  
# creating tkinter window
root = Tk()
  
# Adding widgets to the root window
Label(root, text = 'GeeksforGeeks', font =(
  'Verdana', 15)).pack(side = TOP, pady = 10)
  
# Creating a photoimage object to use image
photo = PhotoImage(file = r"C:\Gfg\circle.png")
  
# here, image option is used to
# set image on button
Button(root, text = 'Click Me !', image = photo).pack(side = TOP)
  
mainloop()

Salida:

en la salida, observe que solo se muestra la imagen en el botón y el tamaño del botón también es más grande que el tamaño habitual porque no hemos establecido el tamaño de la imagen.
 
Código #2: Para mostrar tanto la imagen como el texto en el Botón .

# importing only those functions
# which are needed
from tkinter import * 
from tkinter.ttk import *
  
# creating tkinter window
root = Tk()
  
# Adding widgets to the root window
Label(root, text = 'GeeksforGeeks', font =(
  'Verdana', 15)).pack(side = TOP, pady = 10)
  
# Creating a photoimage object to use image
photo = PhotoImage(file = r"C:\Gfg\circle.png")
  
# Resizing image to fit on button
photoimage = photo.subsample(3, 3)
  
# here, image option is used to
# set image on button
# compound option is used to align
# image on LEFT side of button
Button(root, text = 'Click Me !', image = photoimage,
                    compound = LEFT).pack(side = TOP)
  
mainloop()

Salida:

observe que aparecen tanto el texto como la imagen y que el tamaño de la imagen también es pequeño.

Publicación traducida automáticamente

Artículo escrito por sanjeev2552 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 *