2DAM DI · Tarea
RA3- SEÑALES, COMPONENTES REUTILIZABLES
Instrucciones
Objetivo: integrar un componente reutilizable en MiniOffice y documentar cómo se comunica con la aplicación mediante señales.
Parte del archivo adjunto contadorWidget.py, que contiene la clase WordCounterWidget. El componente muestra palabras, caracteres y una estimación del tiempo de lectura.
1. Integra el componente
- Incorpora el módulo a tu proyecto e importa su clase.
- Crea una instancia del contador y colócala en una zona visible de la interfaz, por ejemplo la barra de estado.
- Sustituye el contador anterior de palabras y caracteres por este componente. El cálculo debe quedar en el componente, sin mantener otra implementación paralela en la ventana.
2. Conecta el editor y las señales
Cada vez que cambie el documento, pasa su texto actual a update_from_text(text). Ten en cuenta que QTextEdit.textChanged avisa del cambio, pero no envía el texto como argumento: la conexión debe obtenerlo del editor.
El componente emite conteoActualizado(int, int) después de actualizarse. Sus dos argumentos son, en este orden, palabras y caracteres. Conecta un receptor que permita comprobar que la ventana recibe estos datos.
El contador debe quedar sincronizado al iniciar, escribir, pegar, borrar, abrir un documento o crear uno nuevo. Evita duplicar conexiones cada vez que abres un archivo y evita que la recepción del conteo vuelva a modificar el texto.
3. Documenta el uso y las señales
Añade al README.md del proyecto:
- Qué hace el componente, dónde se encuentra y cómo se incorpora a otra ventana.
- Qué recibe
update_from_texty cómo se obtiene el texto del editor. - Una relación de las señales utilizadas: nombre, emisor, momento de emisión, argumentos y función receptora.
- La secuencia completa: cambia el editor → se actualiza el componente → se emite el conteo → lo recibe la ventana.
- Configuración disponible:
wpm,mostrarPalabras,mostrarCaracteresymostrarTiempoLectura, con una explicación breve de cada opción.
Explica las reglas del archivo proporcionado: los caracteres incluyen espacios y saltos de línea; las palabras se calculan con su expresión regular. El tiempo de lectura es una estimación a partir de wpm.
Incluye también las señales que use el resto de tu aplicación: acciones del menú, botones, buscador y controles de formato. Si has incorporado voz, documenta sus señales de texto reconocido, estado o error. Describe tus conexiones reales, con los nombres de tus métodos.
Comprueba el resultado y entrega
- Documento vacío: 0 palabras y 0 caracteres.
- Texto
Hola mundo, sin salto final: 2 palabras y 10 caracteres. - Texto
Hola, mundo!, sin salto final: 2 palabras y 12 caracteres. - Comprueba también pegar, borrar, abrir y crear documentos. El dato mostrado y el recibido por la señal deben coincidir.
Entrega el proyecto con el componente integrado y el README actualizado. Incluye una captura del contador y una breve evidencia de que el receptor recibe ambos valores.
Consulta: señal textChanged de QTextEdit.