Files
IPSExtractor/docs/gui/view.md
T

31 lines
1.1 KiB
Markdown

# `gui/view.py`
## Propósito
Vista principal basada en `customtkinter` que define la interfaz de procesamiento y expone métodos para enlazar callbacks y comunicar estado.
## API pública
### `class InvoiceAppView`
- `set_on_select_root(cb)`, `set_on_process(cb)`, `set_on_select_csv(cb)`
- Getters: `get_root_path()`, `get_keywords()`, `get_fields()`, `get_csv_path()`
- Output: `append_output(text)`, `append_output_safe(text)`
- Estado: `set_processing(bool)`
### Keywords / patrones de archivos
- En la pestaña principal, cada Tipo de Documento tiene un campo de **Keyword/Patrón**.
- Se aceptan tanto palabras simples (sin `*` ni `?`) como patrones tipo Windows con `*` y `?`.
- Si el patrón **no incluye extensión**, se aplica sobre el nombre sin extensión y solo se consideran archivos `.pdf`, `.tif`, `.tiff`.
- Si el patrón **incluye extensión** válida (p. ej. `*_OK?.pdf`), se aplica sobre el nombre completo respetando esa extensión.
## Ejemplo
```python
from gui.view import InvoiceAppView
view = InvoiceAppView()
view.set_on_process(lambda: print("Procesar!"))
view.mainloop()
```