Themes y styles en Tkinter

| Última modificación: 10 de abril de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si has querido saber cómo cambiar el tema o los estilos de los objetos de la ventana de tu aplicación, debes conocer qué son y para qué sirven los themes y styles en Tkinter. Esta librería no solo te permite crear una aplicación llena de funcionalidad por medio de los botones, widgets o grids, sino que también posibilita que transformes la estética (colores, fonts…) de tu aplicación y la hagas mucho más amigable para el usuario. Si quieres perfeccionar tu aplicación, en este post te hablamos acerca de los themes y styles en Tkinter.

¿Por qué son necesarios los themes y styles en Tkinter?

La necesidad de usar themes y styles en Tkinter aparece cuando debemos cambiar la apariencia de nuestra aplicación, ya que no podemos utilizar otras opciones o instrucciones. Esto se debe a que, directamente, las funciones nos resultarían en un error. Entonces, los temas y los estilos solucionan este problema.

Themes y styles en Tkinter

Themes y styles en Tkinter

Themes

Hay diferentes themes en Tkinter para cada sistema operativo. Por tanto, primero debes qué tipo de temas o tkinter themes están relacionados con el sistema operativo que utilices. Para esto, tienes que crear un estilo como una instancia del objeto estilo y el paquete ttk. Tkinter.ttk, según la documentación de Python, es un paquete reciente de Tkinter con nuevos módulos y otros conceptos modernizados para el desarrollo de las aplicaciones. Este paquete de tkinter themes lo utilizaremos para integrar los temas en el código.

#en un principio debería estar importada la librería y el módulo ttk
from tkinter import ttk
#Themes y styles en Tkinter
#crear un estilo como una instancia del objeto estilo del paquete ttk
s = ttk.Style()
#para saber qué tipo de estilos hay en tu sistema operador
s.theme_names()
#resultarán temas según tu sistema, estos son algunos de Mac OS: ('aqua', 'clam', 'alt', 'default', 'classic')
#para saber qué tema se está usando. Mac OS usa por defecto aqua
s.theme_use()
#para cambiar el tema que se está usando
s.theme_use ('clam')

Mientras observas las características de los temas según tu sistema operativo, observarás que los controles ttk tienen un conjunto de tkinter themes en función de que sean congruentes con el aspecto general de los controles y cambian, si así se requiere.

Como ya has podido ver, los temas siempre están trabajando con los estilos. Cuanto más te adentres al mundo de los themes y styles en Tkinter, más te darás cuenta de que los temas muchas veces son restrictivos y solo tienen estilos específicos relacionados a ellos.

Styles

Los tkinter style son módulos que se asignan a los controles o widgets. Los tkinter style pueden ser de dos tipo: de clase y de nombre. Para jugar con un estilo, debes crear un instancia del estilo.

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Para empezar, puedes mirar si un botón ya tiene algún estilo o alguna clase (que siempre debe llevar). Para ello utilizarás la siguiente función:

from tkinter import Tk, Button, ttk

# Crear una instancia de la clase Tk
root = Tk()

# Crear un botón
but = Button(root, text="Ejemplo de botón")

# Mostrar el estilo actual del botón
print(but['style'])

# Mostrar la clase de widget del botón
print(but.winfo_class())

# Crear una instancia del objeto estilo del paquete ttk
s = ttk.Style()

# Configurar la fuente del botón
but.configure(style='TButton', font='courier 42')

# Asignar un estilo llamado 'miestilo.TButton' al botón
but.config(style='miestilo.TButton')

# Cambiar la configuración del estilo 'miestilo.TButton'
s.configure('miestilo.TButton', foreground='red')

# Mostrar el estilo actualizado del botón después de realizar cambios
print(but['style'])

# Mostrar el texto del botón con la nueva fuente
but.pack()

# Iniciar el bucle principal de Tkinter
root.mainloop()

La forma de enunciación de los estilos, como foreground, puede cambiar según sea el tema al que está anclado un estilo. Por ejemplo, mientras que para el theme classic de Mac OS se utiliza el foregound para el fondo, en el theme aqua, se usa el estilo backgound.

Antes de comentarte cuál es el siguiente paso, te queremos dar un consejo para el desarrollo de tus aplicaciones con themes y styles en Tkinter. Si quieres realizar una aplicación que se integre completamente con el sistema operativo donde se está programando, te recomendamos utilizar el paquete de ttk. No obstante, si quiere realizar una app que no esté ligada a los modelos de tu sistema, puedes utilizar tk. Ahora, esto no impide que una misma ventana puedes utilizar ambos paquetes, pues es según las necesidades y dinámicas de la aplicación que piensas desarrollar.

¿Cuál es el siguiente paso?

Gracias a este y al resto de posts que has leído sobre Tkinter en KeepCoding, estamos seguros de que puedes ir construyendo una aplicación de escrito más completa y amigable para el usuario. Los themes y styles en Tkinter, como los estilos de botones tkinter, te permitirán manejar cómo se ven todos los objetos que forman parte de la pantalla de tu aplicación.

Si quieres perfeccionar los conocimientos aprendidos acerca los themes y styles en Tkinter y sus otras herramientas y funciones, te recomendamos echarle un vistazo al Bootcamp Aprende a Programar desde Cero. En pocos meses y pasando por diversas etapas de conocimientos teóricos y prácticos sobre programación, te convertirás en un buen programador júnior en Python y Java. ¡Solicita información y apúntate ya!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.