Aunque podemos elaborar programas para consola de Python que
pueden llegar a ser realmente muy útiles, es mucho más atractivo trabajar
con una interfaz gráfica (GUI) para que Python pueda comunicarse con el
usuario.
La interfaz gráfica que nos proporciona PYGAME, es muy útil para
programar juegos dinámicos y vistosos.
Por el contrario, la interfaz TKINTER, que además viene integrada con
el paquete de Python, es mucho más adecuada para programar
aplicaciones de escritorio. También con ella se pueden programar algunos
juegos estáticos.
Tkinter ofrece elementos gráficos muy variados. Estos elementos
reciben el nombre de widgets. Pueden ser botones, menús, campos de
texto… Algunos son apropiados para recibir datos de la aplicación, otros
para facilitar datos, y otros para ambas cosas a la vez.
Todos los widgets disponen de muchas opciones para determinar su
aspecto (color, tamaño…). También disponen de métodos que sirven para
configurar su posición en pantalla y su comportamiento. Cuando el usuario
hace algo con un determinado widget (pulsa un botón, selecciona una
opción de menú…), se genera un evento. Dicho evento es capturado por la
aplicación, y es utilizado para generar un dato, ejecutar una función…
Los eventos y las funciones que los gestionan permiten la interacción entre aplicación/usuario.
Los eventos también pueden darse por sucesos en los cuales no ha
intervenido el usuario. Por ejemplo, cuando un temporizador lo crea.

