Tkinter - CONFIGURAR WIDGETS


En Tkinter los widgets tienen un método .config mediante el cual podemos modificar sus propiedades.

Todos los widgets tienen unas opciones comunes (o estandar) y otra espefíficas del tipo de widget.



PROPIEDADES COMUNES DE LOS WIDGETS


Algunas de las propiedades comunes a todos los widgets en Tkinter son las siguientes:


COLOR: foreground (fg) y background (bg)


Partiendo del siguiente ejemplo:

from tkinter import *

root = Tk()

label = Label(text="Hola")
label.pack(expand=True, fill=BOTH)

root.mainloop()

Lo ejecutamos (he expandido un poco el formulario para que se vea mejor):

Tkinter - Ejemplo Tk con Label

Mediante el método label.config vamos a configurar el color del texto (foreground) y el color de fondo de la etiqueta (background):

from tkinter import *

root = Tk()

label = Label(text="Hola")

label.config(
    foreground="yellow",
    background="black"
    )

label.pack(expand=True, fill=BOTH)

root.mainloop()

Ahora el programa luce así (de nuevo he expandido un poco el formulario):

Tkinter - Ejemplo Label modificada con el método config

Algunos de los parámetros del método config tienen una versión abreviada de los mismos. Por ejemplo, en lugar de foreground y background podríamos haber utilizado fg y bg respectivamente:

from tkinter import *

root = Tk()

label = Label(text="Hola")

label.config(fg="yellow", bg="black")

label.pack(expand=True, fill=BOTH)

root.mainloop()


TAMAÑO: width y height


En el ejemplo anterior he tenido que expandir el formulario para que no fuese demasiado pequeño, ya que si no se especifíca un tamaño inicial de widget, este toma el mínimo tamaño necesario para mostrar su contenido.

El tamaño inicial de un widget puede configurarse mediante sus atributos width y height:

from tkinter import *

root = Tk()

label = Label(text="Hola")

label.config(
    fg="yellow", bg="black",
    width=25, height=5
    )

label.pack(expand=True, fill=BOTH)

root.mainloop()

NOTA: El tamaño del widget puede modificarse en cualquier punto del programa (no solamente el tamaño inicial).


FUENTE: font


El tipo, tamaño y estilo de fuente pueden configurarse mediante el parámetro font en el método config:

from tkinter import *

root = Tk()

label = Label(text="Hola")

label.config(
    fg="yellow", bg="black",
    width=25, height=5,
    font=("Arial", 18, "bold")
    )

label.pack(expand=True, fill=BOTH)

root.mainloop()

Ejecutamos el programa y comprobamos que ahora efectivamente la fuente es "Arial", el tamaño de letra es mayor que antes y el texto se muestra en negrita:

Tkinter - Configuración de la Fuente de Texto de una Etiqueta

Se puede apreciar que el formulario se ha expandido. Esto se debe a que, a pesar de haber definido las dimensiones iniciales, hemos aumentado el tamaño de fuente y el administrador de geometría (.pack) considera que es mas importante mostrar el texto del Label que los valores para el ancho y alto iniciales.


ESTADO: state


Define es estado del widget, que puede ser: ACTIVE, NORMAL o DISABLED.

Este parámetro es mucho mas util en botones que en etiquetas, ya que permite que en cierto momento al hacer click en un botón este no responda.

Establecemos state en DISABLED:

from tkinter import *

root = Tk()

label = Label(text="Hola")

label.config(
    fg="yellow", bg="black",
    width=25, height=5,
    font=("Arial", 18, "bold"),
    state=DISABLED
    )

label.pack(expand=True, fill=BOTH)

root.mainloop()

El resultado es que el texto de la etiqueta se torna color gris (pierde el color que establecimos previamente). Puede utilizarse para señalar que algo no funciona, por ejemplo.

Tkinter - Configuración state=DISABLED


EXPANSIÓN: expand y fill



BORDE: relief y borderwidth



CURSOR: cursor



PADDING: padx y pady