Desarrollo Core QGIS
Estandariza la interacción con la API de QGIS, asegurando un plugin responsivo y bien estructurado.
Cuándo usar este skill
- •Al implementar nuevas herramientas que interactúen con el lienzo del mapa.
- •Al manejar capas vectoriales o ráster.
- •Al realizar operaciones pesadas que requieran hilos secundarios.
Grado de Libertad
- •Estricto: El uso de
QgsTaskpara procesos largos y el desacoplamiento Core/GUI son obligatorios.
Workflow
- •Arquitectura: Separar la lógica en
core/(procesamiento) ygui/(visualización). - •Validación: Siempre verificar
isValid()en las capas antes de operar. - •Asincronía: Envolver procesos de >0.5s en una
QgsTask. - •Gestión de CRS: Manejar explícitamente las transformaciones de coordenadas.
Instrucciones y Reglas
Reglas de Oro
- •QgsTask: No bloquear la UI. Usar señales y slots para comunicación.
- •Fronteras: Usar WKT para comunicar la lógica core con la interfaz gráfica.
- •Inyección: Evitar el uso global de
iface; preferir pasar objetos en constructores.
Estructura del Plugin
- •
core/: Lógica de negocio agnóstica a la UI. - •
gui/: Widgets y diálogos dependientes de PyQGIS. - •
exporters/: Módulos de salida de datos.
Checklist de Calidad
- • ¿Se evitan bloqueos en la interfaz mediante
QgsTask? - • ¿Se valida la integridad de las capas en cada operación?
- • ¿Las transformaciones de CRS están explícitamente definidas?
- • ¿Se sigue la separación de responsabilidades Core/GUI?