Skip to content

Commit e6b1c90

Browse files
committed
Add Readme
1 parent a319957 commit e6b1c90

1 file changed

Lines changed: 93 additions & 0 deletions

File tree

README.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,94 @@
11
# MiniDockQT6
2+
3+
# PracticaMiniDock - Editor de Texto (PySide6)
4+
5+
## Resumen
6+
7+
Aplicación de escritorio tipo editor de texto desarrollada con PySide6. Incluye funciones básicas de edición, búsqueda y reemplazo (con dock), formato de texto y gestión de archivos.
8+
9+
## Funcionalidades principales
10+
11+
- Editor central basado en QTextEdit.
12+
- Crear, abrir y guardar archivos de texto (.txt).
13+
- Deshacer / Rehacer.
14+
- Cortar / Copiar / Pegar.
15+
- Contador de palabras en la barra de estado (actualiza dinámicamente).
16+
- Dock lateral "Buscar y Reemplazar" con:
17+
- Buscar (posiciona en la primera coincidencia).
18+
- Buscar siguiente / Buscar anterior.
19+
- Reemplazar (reemplaza la coincidencia actual).
20+
- Reemplazar todo (reemplaza todas las ocurrencias en el documento).
21+
- Cerrar el dock.
22+
- Cambiar tipografía (QFontDialog).
23+
- Cambiar color de fondo del área de texto (QColorDialog).
24+
- Resaltar selección con color de fondo.
25+
- Atajos de teclado para acciones comunes.
26+
- Barra de herramientas (toolbar) con accesos rápidos e iconos.
27+
28+
## Instalación y requisitos
29+
30+
- Python 3.8+
31+
- PySide6
32+
33+
Instalar PySide6:
34+
35+
```bash
36+
pip install PySide6
37+
```
38+
39+
## Ejecutar la aplicación
40+
41+
En la carpeta del proyecto:
42+
43+
```bash
44+
python PracticaFinal.py
45+
```
46+
47+
## Atajos de teclado
48+
49+
- Nuevo: Ctrl+N
50+
- Abrir: Ctrl+O
51+
- Guardar: Ctrl+S
52+
- Salir: Ctrl+Q
53+
- Deshacer: Ctrl+Z
54+
- Rehacer: Ctrl+Y
55+
- Copiar: Ctrl+C
56+
- Cortar: Ctrl+X
57+
- Pegar: Ctrl+V
58+
- Tipografía: Ctrl+T
59+
- Color de fondo: Ctrl+Shift+C
60+
- Resaltar: Ctrl+H
61+
62+
## Detalles de uso
63+
64+
- Búsqueda y reemplazo:
65+
- "Buscar" solicita el texto y posiciona el cursor en la primera coincidencia.
66+
- "Buscar siguiente" y "Buscar anterior" usan el último término buscado (si no existe, piden uno).
67+
- "Reemplazar" solicita término y reemplazo, y sustituye la coincidencia actualmente seleccionada/posicionada.
68+
- "Reemplazar todo" reemplaza todas las ocurrencias en el documento (se realiza sobre texto plano).
69+
- Resaltar conserva formato del documento usando charFormat y background.
70+
- Contador de palabras cuenta palabras separadas por espacios y muestra el total en la barra de estado.
71+
72+
## Limitaciones conocidas y notas
73+
74+
- Reemplazar todo usa `setPlainText(...)` — esto elimina formato si el documento tuviera estilos ricos. Si es necesario preservar formato, usar QTextCursor para reemplazos.
75+
- El dock usa QInputDialog para pedir términos; mejorar UX añadiendo QLineEdit dentro del dock es recomendado.
76+
- `QIcon.fromTheme(...)` puede devolver iconos vacíos en sistemas sin esos temas; el proyecto incluye algunos iconos en `icons/` como fallback.
77+
- El método de cierre del dock asume jerarquía de widgets; se puede robustecer buscando el ancestro QDockWidget.
78+
- Mensajes temporales usados en barra de estado manejan un QTimer; evitar múltiples conexiones al timer (se recomienda usar `QTimer.singleShot`).
79+
80+
## Estructura de archivos
81+
82+
- PracticaFinal.py — código principal (VentanaPrincipal, DockWidgetBuscarReemplazar).
83+
- icons/ — carpeta opcional con iconos locales usados como fallback.
84+
85+
## Contribuciones y mejoras sugeridas
86+
87+
- Añadir campos de búsqueda y reemplazo directamente en el dock para eliminar diálogos modales.
88+
- Implementar búsqueda sensible a mayúsculas/minúsculas y soporte regex.
89+
- Preservar formato al reemplazar (usar QTextCursor).
90+
- Guardar/restaurar posición y estado del dock (QSettings).
91+
92+
## Licencia
93+
94+
Proyecto educativo — usar y modificar libremente para prácticas y aprendizaje.

0 commit comments

Comments
 (0)