Calc/demo_minimalista.py

87 lines
3.0 KiB
Python

#!/usr/bin/env python3
"""
Demostración del diseño minimalista de 3 paneles
Calculadora MAV - PySide6
"""
import sys
import time
def show_demo_instructions():
"""Muestra las instrucciones de la demostración"""
print("🎯 DEMOSTRACIÓN: Calculadora MAV - Diseño Minimalista")
print("=" * 60)
print()
print("📋 DISEÑO DE 3 PANELES:")
print(" ┌─────────────┬─────────────┬─────────────┐")
print(" │ PANEL 1 │ PANEL 2 │ PANEL 3 │")
print(" │ ENTRADA │ RESULTADOS │ LATEX │")
print(" │ │ (1:1) │ (colapsable)│")
print(" └─────────────┴─────────────┴─────────────┘")
print()
print("✨ CARACTERÍSTICAS PRINCIPALES:")
print(" • Correspondencia 1:1 entre líneas de entrada y salida")
print(" • Tema oscuro minimalista")
print(" • Resaltado de sintaxis en tiempo real")
print(" • Panel LaTeX con MathJax para ecuaciones")
print(" • Motor algebraico SymPy sin cambios")
print()
print("🎮 EJEMPLOS PARA PROBAR:")
print(" # Comentario - aparece en panel LaTeX")
print(" x**2 + y**2 = r**2")
print(" solve(x**2 - 4, x)")
print(" a = 5*x + 3")
print(" diff(x**3, x)")
print(" Matrix([[1, 2], [3, 4]])")
print()
print("⌨️ ATAJOS DE TECLADO:")
print(" • Ctrl+Enter / Shift+Enter: Evaluar")
print(" • F12: Mostrar/ocultar panel LaTeX")
print(" • Ctrl+N: Nueva sesión")
print()
def run_demo():
"""Ejecuta la demostración"""
show_demo_instructions()
try:
response = input("¿Ejecutar la aplicación? (s/N): ").strip().lower()
if response in ['s', '', 'si', 'y', 'yes']:
print("\n🚀 Iniciando Calculadora MAV...")
# Verificar dependencias primero
try:
from PySide6.QtWidgets import QApplication
print("✅ PySide6 disponible")
except ImportError:
print("❌ PySide6 no está instalado")
print(" Ejecuta: pip install -r requirements.txt")
return 1
# Iniciar aplicación
from main_calc_app_pyside6 import main as run_app
# Precarga con contenido de demostración
print("📝 Precargando contenido de demostración...")
demo_content = """# Demostración Calculadora MAV
x**2 + y**2 = r**2
solve(x**2 - 4, x)
a = 5*x + 3
diff(a, x)"""
# Ejecutar aplicación
run_app()
else:
print("👋 ¡Hasta luego!")
except KeyboardInterrupt:
print("\n\n🚪 Demostración cancelada")
return 0
except Exception as e:
print(f"\n❌ Error: {e}")
return 1
return 0
if __name__ == "__main__":
sys.exit(run_demo())