Guía Completa sobre el Widget `Label` de Tkinter en Python


El widget `Label` de Tkinter es uno de los componentes fundamentales en la creación de interfaces gráficas en Python. Su función principal es mostrar texto o imágenes estáticas en la ventana. Aunque a primera vista parece sencillo, el `Label` tiene muchas opciones de personalización, lo que lo hace extremadamente versátil.


En este post, vamos a explorar cómo crear etiquetas (`Label`), cuáles son sus parámetros, métodos, y cómo puedes utilizarlas en tus aplicaciones gráficas de Tkinter.



¿Qué es un `Label` en Tkinter?

El `Label` es un widget que muestra texto o imágenes dentro de una ventana de Tkinter. Es perfecto para mostrar mensajes informativos, títulos, o incluso imágenes. Puedes personalizar el estilo del texto o la imagen, como el tipo de fuente, color, y alineación, entre otros.



Crear un `Label`

La forma básica de crear un `Label` es proporcionándole un widget padre y el texto que deseas mostrar:


import tkinter as tk


ventana = tk.Tk()

etiqueta = tk.Label(ventana, text="Hola, Tkinter!")

etiqueta.pack()


ventana.mainloop()


En este ejemplo:

- `ventana` es el widget padre (la ventana principal).

- `text="Hola, Tkinter!"` es el texto que mostrará el `Label`.

- `pack()` organiza el widget en la ventana.



Parámetros del Widget `Label`

El widget `Label` tiene varios parámetros que te permiten personalizar su apariencia y comportamiento. A continuación, los más importantes:


1. `master`:

  - El widget padre donde se colocará el `Label`. Puede ser la ventana principal o un contenedor como un `Frame`.


  Ejemplo:

   etiqueta = tk.Label(ventana, text="Hola!")



2. `text`:

  - El texto que se mostrará en el `Label`.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="¡Bienvenido a mi app!")



3. `bg` o `background`:

  - El color de fondo del `Label`.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Con fondo azul", bg="blue")



4. `fg` o `foreground`:

  - El color del texto.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Texto en rojo", fg="red")



5. `font`:

  - Establece la fuente del texto, que puede incluir el tipo de letra, el tamaño, y otros atributos (negrita, cursiva).


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Texto con estilo", font=("Arial", 16, "bold"))



6. `padx` y `pady`:

  - Añaden espacio de relleno horizontal (`padx`) y vertical (`pady`) dentro del `Label`, lo que proporciona espacio adicional alrededor del texto.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Con relleno", padx=20, pady=10)



7. `width` y `height`:

  - Especifican el ancho y alto del `Label` en caracteres para texto o píxeles para imágenes.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Ancho de 20 caracteres", width=20)



8. `anchor`:

  - Controla la alineación del contenido dentro del `Label`. Puede ser valores como `tk.N`, `tk.S`, `tk.E`, `tk.W`, `tk.CENTER` (predeterminado), o combinaciones (`tk.NE`, `tk.SW`).


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Texto alineado", anchor="e") # Alineado a la derecha



9. `relief`:

  - Establece el estilo del borde del `Label`. Los valores posibles son: `flat` (predeterminado), `raised`, `sunken`, `solid`, `ridge`, o `groove`.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Borde sólido", relief="solid", bd=2)



10. `bd` o `borderwidth`:

  - El grosor del borde del `Label`. Si `relief` está establecido, puedes usar este parámetro para ajustar el grosor del borde.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Borde de 5px", relief="raised", bd=5)



11. `image`:

  - Permite mostrar una imagen en lugar de texto. Debes usar un objeto `PhotoImage` para cargar la imagen.


  Ejemplo: 

   imagen = tk.PhotoImage(file="imagen.png")

   etiqueta = tk.Label(ventana, image=imagen)



12. `compound`:

  - Si tienes tanto texto como imagen en el `Label`, este parámetro define la disposición relativa entre el texto y la imagen. Los valores incluyen: `left`, `right`, `top`, `bottom`, `center`.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Texto con imagen", image=imagen, compound="left")



13. `justify`:

  - Controla cómo se alinean varias líneas de texto cuando el `Label` tiene varias líneas. Los valores posibles son: `left`, `right`, o `center`.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Línea 1\nLínea 2\nLínea 3", justify="right")



14. `wraplength`:

  - Establece la longitud máxima de una línea antes de que se realice el ajuste de línea (en píxeles).


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Este es un texto largo que se ajustará.", wraplength=150)



15. `state`:

  - Establece el estado del `Label`. Los valores posibles son `normal` (predeterminado) o `disabled`.


  Ejemplo: 

   etiqueta = tk.Label(ventana, text="Texto deshabilitado", state="disabled")



Métodos de `Label`

El widget `Label` hereda muchos métodos útiles de la clase `Widget` en Tkinter. Aquí algunos de los métodos más comunes y útiles:


1. `config()` o `configure()`:

  - Permite cambiar las propiedades del `Label` después de haber sido creado.


  Ejemplo: 

   etiqueta.config(text="Texto actualizado", fg="green")



2. `pack()`, `grid()`, `place()`:

  - Estos son los métodos de geometría utilizados para posicionar el `Label` dentro de la ventana o del widget padre.


  Ejemplo usando `pack()`: 

   etiqueta.pack(padx=10, pady=10)



3. `winfo_children()`:

  - Devuelve una lista de los widgets hijos del `Label` (en caso de que los tenga).


  Ejemplo: 

   hijos = etiqueta.winfo_children()

   print(hijos)



4. `winfo_width()` y `winfo_height()`:

  - Devuelven el ancho y alto del `Label` en píxeles.


  Ejemplo: 

   ancho = etiqueta.winfo_width()

   alto = etiqueta.winfo_height()

   print(f"Ancho: {ancho}, Alto: {alto}")



5. `after(ms, func)`:

  - Ejecuta una función después de un tiempo determinado (en milisegundos). Puede ser útil para actualizar dinámicamente un `Label`.


  Ejemplo: 

   def actualizar_texto():

     etiqueta.config(text="Texto cambiado!")

   etiqueta.after(2000, actualizar_texto) # Cambia el texto después de 2 segundos



6. `destroy()`:

  - Elimina el `Label` de la ventana.


  Ejemplo: 

   etiqueta.destroy()



Ejemplo Completo de Uso de `Label`

Aquí tienes un ejemplo más completo que demuestra varias de las características mencionadas:


import tkinter as tk


# Crear la ventana principal

ventana = tk.Tk()

ventana.title("Ejemplo Completo de Label")


# Crear un Label con varias propiedades

etiqueta = tk.Label(

  ventana, 

  text="¡Bienvenido a mi aplicación!", 

  bg="lightblue", 

  fg="darkblue", 

  font=("Helvetica", 16, "bold"), 

  padx=20, 

  pady=20, 

  relief="solid", 

  bd=2

)

etiqueta.pack(pady=10)


# Crear una imagen y agregarla al Label

imagen = tk.PhotoImage(file="imagen.png")

etiqueta_imagen = tk.Label(ventana, image=imagen)

etiqueta_imagen.pack(pady=10)


# Cambiar el texto del Label después de 3 segundos

def cambiar_texto():

  etiqueta.config(text="Texto actualizado después de 3 segundos")

etiqueta.after(3000, cambiar_texto)


# Iniciar el bucle principal

ventana.mainloop()



Hay mucho más contenido sobre Python para ti

Puedes conocer todo el contenido que comparto en mi perfil de LinkedIn

 

Puedes descargar GRATIS mi manual completo en pdf de Python Rápido


image


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.