5.0 KiB
5.0 KiB
Mejoras Implementadas en Calculadora MAV PySide6
Problemas Solucionados
1. ✅ Comentarios en Panel de Resultados
- Problema: Los comentarios no se copiaban al panel de resultados
- Solución:
- Modificada función
_evaluate_lines()
para detectar comentarios con#
- Agregado formato especial para comentarios en
setup_output_tags()
- Los comentarios ahora aparecen en verde cursiva en el panel de resultados
- Correspondencia 1:1 mantenida entre entrada y salida
- Modificada función
2. ✅ Comentarios en Panel MathJax
- Problema: Los comentarios no se mostraban correctamente en el panel LaTeX
- Solución:
- Mejorado el JavaScript del panel MathJax para manejar comentarios
- Los comentarios se muestran con formato especial (sin LaTeX)
- Agregada función
preprocessLatex()
para mejor procesamiento
3. ✅ Filtrado de Contenido en Panel MathJax
- Problema: Se mostraba todo en el panel LaTeX
- Solución:
- Mejorada función
_add_to_latex_panel_if_applicable()
con reglas claras:- Comentarios: Siempre se agregan
- Asignaciones: Variables = expresiones simbólicas
- Ecuaciones: Expresiones con símbolos matemáticos
- Exclusiones: Resultados numéricos simples sin contenido simbólico
- Mejorada función
4. ✅ Persistencia de Dimensiones
- Problema: Las dimensiones no se guardaban entre sesiones
- Solución:
- Agregada función
save_settings()
mejorada que guarda:- Posición de ventana (x, y)
- Tamaño de ventana (width, height)
- Tamaños de cada panel del splitter
- Estado visible/oculto del panel LaTeX
- Agregada función
restore_geometry()
para cargar configuración - Archivos de configuración separados:
hybrid_calc_settings_pyside6.json
- Agregada función
5. ✅ Parsing LaTeX Mejorado
- Problema: Errores con divisiones y funciones como sqrt
- Solución:
- Mejorado HTML base con macros LaTeX para funciones comunes
- Agregada función
preprocessLatex()
en JavaScript:- Convierte
/
a\frac{}{}
- Convierte
sqrt()
a\sqrt{}
- Maneja funciones trigonométricas
- Convierte
- Mejorada función
_sympy_to_latex()
con fallbacks - Mejor manejo de errores de MathJax con fallback a texto plano
6. ✅ Cierre de Popups con Enter
- Problema: Los popups de autocompletado no se cerraban con Enter
- Solución:
- Modificada función
_handle_key_press()
para detectar Enter/Return - Los popups se cierran automáticamente al presionar Enter
- Mantiene funcionalidad normal de nueva línea
- Modificada función
Nuevas Características
📐 Panel MathJax Rediseñado
- Diseño moderno con gradientes y sombras
- Scrollbar personalizado
- Mejor tipografía y espaciado
- Animaciones suaves de hover
- Indicadores de tipo por colores
💾 Configuración Persistente
- Geometría de ventana completamente persistente
- Tamaños de paneles individuales guardados
- Configuración en archivo JSON separado
- Carga automática al iniciar
🎨 Resaltado de Sintaxis Mejorado
- Colores optimizados para tema oscuro
- Comentarios en verde cursiva
- Números, funciones y operadores diferenciados
Estructura de Archivos
Calcv2/
├── main_calc_app_pyside6.py # Aplicación principal PySide6
├── hybrid_calc_settings_pyside6.json # Configuración persistente
├── hybrid_calc_history_pyside6.txt # Historial de sesión
└── README_MEJORAS_PYSIDE6.md # Este archivo
Cómo Probar las Mejoras
1. Comentarios
# Este es un comentario que aparece en ambos paneles
x = 2 + 3 # Comentario al final de línea
# Otro comentario
y = x * 4
2. Ecuaciones LaTeX
from sympy import *
x, y = symbols('x y')
# Divisiones (ahora renderiza correctamente)
expr1 = (x + 1) / (x - 1)
# Funciones sqrt
expr2 = sqrt(x**2 + y**2)
# Funciones trigonométricas
expr3 = sin(x) / cos(x)
# Asignaciones simbólicas
z = x**2 + 2*x + 1
3. Persistencia
- Redimensiona la ventana y los paneles
- Muestra/oculta el panel LaTeX con F12
- Cierra la aplicación
- Reabre - debería mantener todas las dimensiones
4. Autocompletado
# Escribe "sympy." y aparece popup
# Presiona Enter para cerrar sin seleccionar
# Escribe "x." después de definir una variable
Comando de Ejecución
python main_calc_app_pyside6.py
Atajos de Teclado
- F12: Mostrar/ocultar panel LaTeX
- Ctrl+Enter: Evaluar manualmente
- Shift+Enter: Evaluar manualmente
- Escape: Cerrar popups de autocompletado
- Enter: Cerrar popups y crear nueva línea
Log de Debugging
La aplicación mantiene logs detallados para debugging en:
- Consola durante ejecución
- Información de estado en barra inferior
- Errores de MathJax manejados graciosamente
Próximas Mejoras Sugeridas
- Exportar LaTeX: Botón para exportar todas las ecuaciones del panel
- Temas: Opción para cambiar entre tema claro/oscuro
- Búsqueda: Función de búsqueda en historial
- Variables Globales: Panel lateral con variables definidas
- Plots Integrados: Mostrar gráficos directamente en el panel LaTeX