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:

2. Hola Mundo Visual

app.py
import 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
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.py
import 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

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.