99 lines
3.5 KiB
Python
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', '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()) |