Cómo crear widgets en Tkinter

| Última modificación: 5 de julio de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si ya sabes qué es Tkinter es el momento de aprender cómo darle uso a tu aplicación. Para ello, es importante saber cómo crear widgets en Tkinter. Si aún no lo tienes claro, te recomendamos seguir leyendo este post.

Recuerda que Tkinter es una librería del lenguaje de programación Python y funciona para crear y desarrollar aplicaciones de escritorio. A continuación, te explicamos cuál es el proceso para crear widgets en Tkinter.

Controles o widgets en Tkinter

Antes de empezar a crear un control o widget en Tkinter o unos botones en Python, debes tener abierta la consola con el lenguaje de programación Python, así como una ventana principal creada. Si aún no tienes claro cómo hacerla, dimensionarla o posicionarla, te recomendamos echarle un vistazo al post sobre cómo crear ventanas en Tkinter.

Una vez hayas creado la ventana con unas dimensiones y un título específico y, a su vez, la hayas posicionado en el lugar de la pantalla de tu preferencia, estás listo para crear los widgets en Tkinter.

Como referencia, utilizaremos este borrador de una ventana con columnas y botones que te permitirá realizar un ejercicio práctico. Este diseño es el que realizaremos por medio de los widgets en Tkinter o botones en Python.

Diseño de la ventana

Crear el frame

En primer lugar, cuando estás creando una aplicacion con tkinter, crearás el frame de la ventana. Para ello, debes crear una instancia de la clase frame siguiendo esta instrucción: w = Frame ( parent, option). Los parámetros que están dentro del paréntesis formarán parte del anclaje del botón, en este caso, la ventana. A su vez, las propiedades que quedarán dentro de la función como opciones pueden ser bg o background para el fondo, cursor, height para la altura del frame, width para el ancho del frame o borderwidth para el ancho del borde, entre otras opciones.

🔴 ¿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

En términos del ejercicio, la función queda de esta manera: fr_buttons = tkinter.Frame (wroot, width =200, height = 260, bg = “#f0f0f0”) con los widgets de tkinter.

Posicionar el frame

En este momento cuando estás creando una aplicacion con tkinter, no verás ningún cambio porque todavía no has posicionado el o los widgets de tkinter. Por tanto, tendrás que seguir esta instrucción del método geometry: fr_buttons.place (x=o, y=0), siendo x las coordenadas horizontales y las y las coordenadas verticales. Una vez la posiciones en el lugar que desees, puedes empezar a crear botones sobre tu ventana.

Crear botones

Para crear botones widgets con Tkinter, mientras estás creando una aplicacion con tkinter, debes empezar por saber qué tipo de botón quieres poner sobre tu ventana. Hay muchas opciones que puedes utilizar en tus programas, tales como text para poner un botón con texto, font para escoger la fuente de la etiqueta del botón, image para poner una imagen en el botón en vez de un texto o width y height para cuadrar las dimensiones de los botones, entre otras opciones.

Para crear el boton, debes utilizar la siguiente instrucción: btn_reset = tkinter.Button (fr.buttons, text = ‘”Reset”). De esta manera podrás, en un paso posterior, posicionar tus botones en el lugar que necesites.

Ahora, para el resto de botones que se plantean en el diseño anterior, debes proponer las siguientes instrucciones:

#creación de botones para la ventana 
btn_max = tkinter.Button (fr_buttons, text = "Full Screen")
btn_centrar = tkinter.Button (fr_buttons, text = "Centrar")
btn_quit = tkinter.Button (fr_buttons, text = "Quit")

Crear eventos relacionados con botones

Además de crear botones o widgets de tkinter, botones en Python, que estén organizados en las ventanas en Tkinter, es posible programar los botones para que realicen las acciones que el programador espera. Como ejemplo, vamos a seguir con los controles que creamos en el apartado anterior.

Vas a suponer que necesitas que el botón de reset establezca una ventana con dimensiones y una posición específica. Puedes practicar a partir de las siguientes instrucciones y crear widgets en Tkinter relacionados a eventos, así como con los botones en Python.

#posición y dimensiones de la ventana
wroot.geometry ()
'400x300+3+33'
wroot.winfo_x()
      3

#variables
woriginals = (wroot.winfo_width(), wroot.winfo_height(), wroot.winfo_x(), wroot.winfo_y())

#función que creará una cadena con la estructura de la geometria o "geometry" con los valores de woriginals. Este proceso puede ser realizado con una lista, un diccionario y una cadena.
    def reset()
           g = "{}x{}+{}". format (woriginals[0], woriginals[1], woriginals[3])

#la geometría será la cadena que creamos en el paso anterior
           wroot.geometry(g)

#ejecutar la función
>reset()

Así es como enlazas a un botón con una acción en específico. Sin embargo, si deseas que en el momento en el que hagas clic el botón realice la acción, deberás cumplir con la siguiente instrucción:

#en este caso, añadimos un acción al botón por medio del método config. la opción será command y su valor reset, sin paréntesis.

btn_reset.config (command = reset)

Esta misma función la podremos adecuar, con acciones diferentes, a los botones o widgets restantes de la ventana de la aplicación que establecimos en un principio.

Como has podido ver, la creación de widgets en Tkinter es muy importante para adecuar las funcionalidades en el desarrollo de una aplicación de escritorio. Tkinter, al ser una librería, guarda varios recursos que te permitirán sacar el mayor provecho a un lenguaje de programación tan polifacético como Python. Las opciones y funciones que te presentamos en este post son solo una pequeña parte de la gran librería de Tkinter.

Si quieres saber más acerca de widgets en Tkinter, otras herramientas de la librería y más conceptos acerca del desarrollo de aplicaciones de escritorio, te invitamos a revisar nuestro Bootcamp Aprende a Programar desde Cero. Este bootcamp está enfocado en aprender los conceptos base de la programación orientada a objetos por medio de Python, uno de los lenguajes más reconocidos actualmente. En pocos meses, ¡te convertirás en un experto!

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.