Python/Interfaz gráfica con Tkinter/Empezando por lo básico

De Wikilibros, la colección de libros de texto de contenido libre.

Índice de la sección
«Interfaz gráfica con Tkinter»


Lo primero que debemos hacer al igual que con otros módulos, es que debemos importarlo para poder comenzar a utilizarlo, y al igual que con otros módulos no hay una sola forma de hacerlo.

La primer forma (y la mas popular):

from Tkinter import *

Y la segunda:

import Tkinter
NOTA
En las versiones 3.x de Python el modulo Tk se debe llamar de esta forma "from tkinter import *" y no de esta otra forma "from Tkinter import *", es un cambio menor que hay que tener en cuenta si están trabajando con Python 3.

La diferencia entre usar la primera o la segunda forma es la misma con la que nos podemos encontrar a la hora de importar un modulo en Python, para verlo les muestro esta diferencia utilizando al modulo time y usamos el siguiente ejemplo:

import time
time.sleep(10)
from time import sleep
sleep(10)

Usando la forma "import Tkinter" cada vez que utilicemos una función de este modulo tendremos que anteponer la palabra Tkinter, en cambio usando la segunda forma "from Tkinter import *" simplemente deberemos usar el nombre de la función sin el nombre del modulo. Hay otras formas pero dependerá de tu forma de trabajar o la que te resulte mas cómoda, en todo caso puedes darle un vistazo a esta traducción de la guía de estilo escrita por Guido van Rossum y Barry Warsaw http://mundogeek.net/traducciones/guia-estilo-python.htm

Por ahora a modo didáctico usaremos la segunda forma para que los ejemplos sean mas claros, pero esto queda a tu eleccion. Ahora si retomemos nuestro camino.

Una observación que tendremos que tener antes de continuar es no debemos pasa por alto la posibilidad de que el usuario no tenga instalado las librerías de Tkinter y en consecuencia nuestra aplicación no podrá funcionar, lo mejor en este caso como en muchos otros es anticiparnos a los posibles errores que puedan ir surgiendo y manejar las excepciones de la siguiente forma:

try:
    import Tkinter
except ImportError:
    raise ImportError,"Se requiere el modulo Tkinter"

De esta forma en caso de que el potencial usuario de nuestra preciada aplicación no puede ejecutarla pueda saber cual es motivo (en este caso es que no tenga instalado Tkinter) por el cual no pudo iniciarla.

Una vez importado el modulo Tkinter correctamente podemos utilizarlo para crear nuestra primera ventana de la siguiente forma:

import Tkinter

root = Tkinter.Tk()
root.mainloop()

Estas lineas son fundamentales, ya que de ellas dependerá gran parte del contenido así como pueden ser botones y menús, aunque mas adelante conforme vayamos viendo temas mas avanzados podremos hacer uso de otras herramientas y técnicas. En la primera linea (No tengamos en cuenta la importación) se crea un identificador que sera el que utilizaremos para referirnos a la ventana, en este caso lo llamamos 'root' y es una de las funciones mas importantes de Tkinter. Siempre que iniciamos un identificador que en este caso lo llamamos 'root' debemos cerrarlo para capturar como veremos mas adelante los eventos.

NOTA
La variable 'root' usada para nombrar al identificador puede ser reemplazada por cualquier otro nombre siempre y cuando se respeten las palabras reservadas de Python, aunque es muy utilizado usar el nombre 'root' para la ventana principal y puede ser una buena practica para que resulte mas familiar a los demás programadores que se quieran unir al desarrollo de nuestra aplicación.

Con esto ya tendremos una ventana vacía que nos servirá para comenzar a trabajar, a partir de ahora iremos ampliando el contenido mostrando los distintos widgets con los que contamos en Tkinter y luego para finalizar crearemos un ejemplo sencillo para unir lo se vio a lo largo de este material.


Python: Índice · Introducción · Enlaces

Instalación de Python · Generalidades · Funciones, constantes nativas · Tipos de datos nativos · Herramientas de control de flujo · Definición de funciones · Leer y escribir archivos · Su primer programa en Python · Entrada y salida · Estructuras de datos · Errores y excepciones

Interfaces gráficas · Módulos relacionados con el sonido · Módulos relacionados con el tiempo · Módulos relacionados con la matemática