Tkinter Style: Personalización de Estilos en Tkinter

Tkinter Style: Personalización de Estilos en Tkinter

Tkinter es una librería de Python para el desarrollo de interfaces gráficas de usuario (GUI). Una de las características más potentes de Tkinter es su sistema de estilos, que permite personalizar la apariencia de los widgets de la GUI.

En este tutorial, veremos cómo utilizar el sistema de estilos de Tkinter para personalizar la apariencia de los widgets de una aplicación.

Introducción a los estilos

Un estilo es una clase que contiene la información de la apariencia de un tipo de control. Para que un control en particular reciba la apariencia de un estilo, debemos indicar el nombre del estilo al momento de crear el control.

Por ejemplo, el siguiente código crea un botón con el estilo "default":

Python
from tkinter import Button

root = Tk()

button = Button(root, text="Hola, mundo!", style="default")
button.pack()

root.mainloop()

Este código producirá la siguiente salida:

Hola, mundo!

El estilo "default" es el estilo predeterminado de Tkinter. Podemos personalizarlo para cambiar la apariencia de los botones.

Personalización de los estilos

Podemos personalizar los estilos de Tkinter modificando las propiedades de los estilos. Las propiedades de los estilos controlan aspectos de la apariencia del control, como el color, el tamaño, la fuente, etc.

Para modificar una propiedad de un estilo, utilizamos el método configure() del estilo. El método configure() acepta un diccionario como argumento, que contiene las nuevas propiedades del estilo.

Por ejemplo, el siguiente código cambia el color de fondo del estilo "default" a rojo:

Python
from tkinter import Button
from tkinter import ttk

root = Tk()

# Creamos un estilo
style = ttk.Style()

# Cambiamos el color de fondo del estilo
style.configure("default", background="red")

# Creamos un botón con el estilo personalizado
button = Button(root, text="Hola, mundo!", style="default")
button.pack()

root.mainloop()

Este código producirá la siguiente salida:

Hola, mundo!

Estilos personalizados

También podemos crear nuestros propios estilos personalizados. Para crear un estilo personalizado, utilizamos la clase ttk.Style().

El siguiente código crea un estilo personalizado llamado "mi_estilo":

Python
from tkinter import ttk

# Creamos un estilo personalizado
style = ttk.Style()

# Personalizamos el estilo
style.configure("mi_estilo",
                background="green",
                foreground="white",
                font="Arial 12")

# Creamos un botón con el estilo personalizado
button = Button(root, text="Hola, mundo!", style="mi_estilo")
button.pack()

root.mainloop()

Este código producirá la siguiente salida:

Hola, mundo!

Aplicando estilos a múltiples widgets

En muchas ocasiones, queremos aplicar un mismo estilo a múltiples widgets. Para ello, podemos utilizar el método configure_all() del estilo.

El método configure_all() acepta un diccionario como argumento, que contiene las nuevas propiedades del estilo.

Por ejemplo, el siguiente código aplica el estilo "mi_estilo" a todos los botones de la ventana:

Python
from tkinter import ttk

root = Tk()

# Creamos un estilo personalizado
style = ttk.Style()
style.configure("mi_estilo",
                background="green",
                foreground="white",
                font="Arial 12")

# Creamos dos botones
button1 = Button(root, text="Botón 1")
button2 = Button(root, text="Botón 2")

# Aplicamos el estilo a los botones
style.configure_all("Button", style="mi_estilo")

# Colocamos los botones en la ventana
button1.pack()
button2.pack()

root.mainloop()

Este código producirá la siguiente salida:

Botón 1
Botón 2

Conclusión

El sistema de estilos de Tkinter es una herramienta poderosa que nos permite personalizar la apariencia de las GUI de Tkinter. En este tutorial, hemos visto cómo utilizar el sistema de estilos para personalizar la apariencia de los widgets de una aplicación.

Para obtener más información sobre los estilos de Tk