#!/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', '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())