Calc/demo_completo.py

99 lines
3.5 KiB
Python

#!/usr/bin/env python3
"""
Demostración completa de Calculadora MAV PySide6
Muestra todas las características implementadas
"""
import sys
def show_features():
"""Muestra todas las características implementadas"""
print("🎯 CALCULADORA MAV - TODAS LAS CARACTERÍSTICAS")
print("=" * 60)
print()
print("✅ CARACTERÍSTICAS IMPLEMENTADAS:")
print()
print("🖥️ DISEÑO MINIMALISTA:")
print(" • 3 paneles con splitters redimensionables")
print(" • Correspondencia 1:1 línea por línea")
print(" • Tema oscuro optimizado")
print()
print("🧮 MOTOR ALGEBRAICO:")
print(" • Contexto se limpia entre ciclos ✅")
print(" • Motor original PureAlgebraicEngine preservado")
print(" • Tipos personalizados integrados")
print()
print("📐 PANEL MATHJAX OPTIMIZADO:")
print(" • Altura reducida sin texto de tipo ✅")
print(" • Renderizado más compacto")
print(" • Colores diferenciados por tipo")
print()
print("💬 AUTOCOMPLETADO RESTAURADO:")
print(" • Popup de variables después de 800ms ✅")
print(" • Autocompletado con punto (objeto.método)")
print(" • Navegación con ↑↓, selección con Tab")
print(" • Filtrado en tiempo real")
print()
print("🎮 CONTROLES:")
print(" • Ctrl+Enter / Shift+Enter: Evaluar")
print(" • F12: Mostrar/ocultar panel LaTeX")
print(" • Punto (.): Autocompletado de métodos")
print(" • Tab: Seleccionar autocompletado")
print(" • Escape: Cerrar popup")
print(" • ↑↓: Navegar autocompletado")
print()
print("📝 EJEMPLOS PARA PROBAR:")
print(" # Este comentario aparece en LaTeX")
print(" x**2 + y**2 = r**2")
print(" a = 5*x + 3")
print(" Matrix([[1, 2], [3, 4]])")
print(" solve(x**2 - 4, x)")
print(" diff(x**3, x)")
print(" # Prueba autocompletado escribiendo 'a.' después de asignar")
print()
def run_demo():
"""Ejecuta la demostración"""
show_features()
try:
response = input("¿Ejecutar la aplicación con todas las características? (s/N): ").strip().lower()
if response in ['s', '', 'si', 'y', 'yes']:
print("\n🚀 Iniciando Calculadora MAV con todas las mejoras...")
# Verificar dependencias
try:
from PySide6.QtWidgets import QApplication
from PySide6.QtWebEngineWidgets import QWebEngineView
print("✅ PySide6 y WebEngine disponibles")
except ImportError as e:
print(f"❌ Falta dependencia: {e}")
print(" Ejecuta: pip install PySide6 PySide6-WebEngine")
return 1
# Iniciar aplicación
from main_calc_app_pyside6 import main as run_app
print("📝 Aplicación con:")
print(" ✅ Contexto limpio entre ciclos")
print(" ✅ Panel LaTeX compacto")
print(" ✅ Splitters redimensionables")
print(" ✅ Autocompletado completo")
print()
run_app()
else:
print("👋 ¡Hasta luego!")
except KeyboardInterrupt:
print("\n\n🚪 Demo cancelada")
return 0
except Exception as e:
print(f"\n❌ Error: {e}")
import traceback
traceback.print_exc()
return 1
return 0
if __name__ == "__main__":
sys.exit(run_demo())