Creando Software de PC
A veces no necesitas una web. Necesitas un programa que funcione en el ordenador sin internet. Tkinter viene instalado con Python y es la forma más rápida de crear ventanas.
1. Conceptos GUI (Graphical User Interface)
Una interfaz gráfica funciona como un árbol genealógico:
- Raíz (Root): La ventana principal.
- Widgets: Los elementos dentro (Botones, Etiquetas, Cajas de texto).
- Loop: El programa se queda "congelado" esperando clics del usuario (`mainloop`).
2. Hola Mundo Visual
app.pyimport tkinter as tk
# 1. Crear la ventana principal
ventana = tk.Tk()
ventana.title("Mi Primera App")
ventana.geometry("400x300")
# 2. Crear un Widget (Etiqueta)
etiqueta = tk.Label(ventana, text="Hola Pizarra Solidaria", font=("Arial", 14))
etiqueta.pack() # Empaquetarlo en la ventana
# 3. Iniciar el bucle de escucha
ventana.mainloop()
3. Diseño: ¿Cómo colocar las cosas?
Tkinter tiene dos "Managers" principales para ordenar los botones:
A. Pack (Apilar): Coloca uno debajo del otro o uno al lado del otro. Rápido y sencillo.
B. Grid (Cuadrícula): Como Excel. Defines fila y columna (Row/Column). Es más preciso.
Ejemplo Grid
B. Grid (Cuadrícula): Como Excel. Defines fila y columna (Row/Column). Es más preciso.
usuario_lbl = tk.Label(ventana, text="Usuario:")
usuario_lbl.grid(row=0, column=0, padx=10, pady=10)
entrada_txt = tk.Entry(ventana)
entrada_txt.grid(row=0, column=1)
4. Lógica: Calculadora de Propinas
Vamos a hacer una app real. Necesitamos conectar el Click del Botón con una Función Python.
calculadora.pyimport tkinter as tk
from tkinter import messagebox
def calcular():
try:
total = float(entrada_total.get()) # Obtener texto y convertir a número
propina = total * 0.10
resultado_lbl.config(text=f"Propina sugerida: ${propina:.2f}")
except ValueError:
messagebox.showerror("Error", "Por favor escribe un número válido")
ventana = tk.Tk()
ventana.title("CalcPropina")
# Widgets
tk.Label(ventana, text="Total de la cuenta:").pack(pady=5)
entrada_total = tk.Entry(ventana)
entrada_total.pack(pady=5)
btn = tk.Button(ventana, text="Calcular 10%", command=calcular, bg="#4CAF50", fg="white")
btn.pack(pady=20)
resultado_lbl = tk.Label(ventana, text="...")
resultado_lbl.pack()
ventana.mainloop()
5. Crear el Ejecutable (.EXE)
¿Quieres enviarle tu app a un amigo que no tiene Python instalado? Usaremos PyInstaller.
pip install pyinstaller
pyinstaller --onefile --noconsole calculadora.py
pyinstaller --onefile --noconsole calculadora.py
Explicación:
--onefile: Crea un solo archivo .exe (en lugar de una carpeta llena de cosas).
--noconsole: Al abrir la app, no se abre la pantalla negra de comandos detrás.
Busca tu archivo en la carpeta dist/ creada.