¿Qué es Tkinter?
Tkinter es el módulo oficial de Python para crear interfaces gráficas. Permite construir:
Ventanas
Botones
Etiquetas
Entradas de texto
Listas
Cuadros de diálogo
Menús
Formularios completos
Y todo con muy pocas líneas de código.
1. Crear una ventana básica
import tkinter as tk
ventana = tk.Tk()
ventana.title("Mi primera ventana")
ventana.geometry("300x200")
ventana.mainloop()
2. Widgets básicos
Etiquetas (Label)
label = tk.Label(ventana, text="Hola Tkinter")
label.pack()
Botones (Button)
def saludar():
print("Hola!")
boton = tk.Button(ventana, text="Saludar", command=saludar)
boton.pack()
Entradas de texto (Entry)
entrada = tk.Entry(ventana)
entrada.pack()
3. Obtener y mostrar datos
def mostrar():
texto = entrada.get()
label.config(text=f"Has escrito: {texto}")
entrada = tk.Entry(ventana)
entrada.pack()
boton = tk.Button(ventana, text="Mostrar", command=mostrar)
boton.pack()
label = tk.Label(ventana, text="")
label.pack()
4. Layouts: pack, grid, place
pack (simple)
label.pack()
grid (ideal para formularios)
tk.Label(ventana, text="Nombre:").grid(row=0, column=0)
tk.Entry(ventana).grid(row=0, column=1)
place (posiciones absolutas)
boton.place(x=50, y=100)
5. Cuadros de diálogo
from tkinter import messagebox
messagebox.showinfo("Información", "Operación completada")
6. Listbox (listas)
lista = tk.Listbox(ventana)
lista.pack()
lista.insert(0, "Python")
lista.insert(1, "Java")
lista.insert(2, "C++")
7. Menús
menu = tk.Menu(ventana)
ventana.config(menu=menu)
archivo = tk.Menu(menu, tearoff=0)
menu.add_cascade(label="Archivo", menu=archivo)
archivo.add_command(label="Salir", command=ventana.quit)
ACTIVIDAD PRÁCTICA: “Gestor de tareas con Tkinter”
Objetivo: que tus alumnos creen una aplicación gráfica funcional con:
Entrada de texto
Botón para añadir tareas
Listbox para mostrarlas
Botón para eliminar tareas
Mensajes de confirmación
Enunciado
Crea una aplicación con Tkinter que permita:
Escribir una tarea en un Entry
Añadirla a una lista (Listbox)
Eliminar la tarea seleccionada
Mostrar mensajes de error si no hay tarea seleccionada
Guardar las tareas en un archivo
tareas.txtal cerrar
Solución propuesta
import tkinter as tk
from tkinter import messagebox
def añadir_tarea():
tarea = entrada.get()
if tarea.strip() == "":
messagebox.showwarning("Error", "No puedes añadir una tarea vacía.")
return
lista.insert(tk.END, tarea)
entrada.delete(0, tk.END)
def eliminar_tarea():
try:
indice = lista.curselection()[0]
lista.delete(indice)
except:
messagebox.showwarning("Error", "Selecciona una tarea para eliminar.")
def guardar_tareas():
with open("tareas.txt", "w", encoding="utf-8") as f:
for i in range(lista.size()):
f.write(lista.get(i) + "\n")
ventana.quit()
ventana = tk.Tk()
ventana.title("Gestor de Tareas")
ventana.geometry("300x400")
entrada = tk.Entry(ventana)
entrada.pack(pady=10)
boton_añadir = tk.Button(ventana, text="Añadir tarea", command=añadir_tarea)
boton_añadir.pack()
lista = tk.Listbox(ventana)
lista.pack(expand=True, fill="both", padx=10, pady=10)
boton_eliminar = tk.Button(ventana, text="Eliminar tarea", command=eliminar_tarea)
boton_eliminar.pack()
boton_guardar = tk.Button(ventana, text="Guardar y salir", command=guardar_tareas)
boton_guardar.pack(pady=10)
ventana.mainloop()
Resultado esperado
Una ventana con un gestor de tareas funcional
Añadir y eliminar tareas fácilmente
Guardado automático al salir