El libro de cocina PyQGIS explica qué archivos son comunes en los complementos QGIS. Como puede ver allí, solo necesitaría tres archivos para ejecutar un complemento mínimo:
__init__.py
metadata.txt
mainPlugin.py
El __init__.py
archivo le permite a QGIS saber que la carpeta Plugin es un módulo de Python. Debe contener una classFactory(iface)
función que QGIS utiliza para inicializar su complemento, haciendo uso de su clase de complemento principal, que se encuentra en el mainPlugin.py
archivo.
metadata.txt
es donde especifica los metadatos de su complemento, es decir, el nombre del complemento, el autor, la licencia, la versión, la página de inicio, el rastreador de errores, el repositorio, entre otros.
mainPlugin.py
podría ser nombrado de otras maneras. Este es el archivo al que se hace referencia __init__.py
y contiene las funciones que enumeró en su pregunta. Yo diría que este archivo es el núcleo de su complemento.
Con respecto al generador de complementos QGIS, le sugiero que lea la documentación oficial para tener una idea de cómo está estructurado. De hecho, prefiero no usar dicho complemento, porque crea muchas cosas que no te gustaría tener en cuenta mientras aprendes los conceptos básicos del desarrollo de complementos.
Te recomiendo que comiences desde complementos que entiendas completamente. Es decir, comience con una estructura de complemento muy básica (incluso la mínima) y agregue complejidad solo cuando sea necesario y cuando domine los conceptos básicos.
Por otro lado, te diré para qué son las funciones que enumeraste:
__init__( self, iface )
Este es el constructor de su complemento. Cuando QGIS reconoce una carpeta como un complemento de Python, el __init__()
método se ejecuta y el objeto de interfaz iface
, se pasa a su complemento, para que pueda acceder a QGIS después.
Debe usar este método para guardar una referencia iface
(ya que será su punto de entrada a los componentes de QGIS), así como para inicializar otras variables que usará en otras funciones de su complemento.
tr( self, message )
Esta es una función de Python para obtener traducciones de cadenas. Por supuesto, deberá proporcionar traducciones, pero lo hace en otros archivos Qt (es decir, en archivos .ts).
En general, no necesitaría esta función a menos que admita otros idiomas además del inglés. Definitivamente no es una prioridad para los nuevos desarrolladores de PyQGIS.
add_action( self )
Esta es una función que solo he visto en complementos generados a través de QGIS Plugin Builder. Le ayuda a configurar su interfaz gráfica de usuario del complemento. Yo personalmente no lo uso en mis complementos.
initGui( self )
Este es un método para configurar la GUI de su complemento dentro de QGIS. Aquí puede especificar si desea un botón en la barra de herramientas del complemento QGIS, una barra de herramientas personalizada, un botón dentro de un menú QGIS existente y / o (no recomendado) un nuevo menú personalizado.
Este también es un buen lugar para establecer conexiones de SEÑAL / RANURA entre sus botones de complemento (u otros controles) y sus funciones.
unload( self )
Este es un método para eliminar sus widgets de complementos (botones, menús y similares) de la GUI de QGIS.
Este también es un buen lugar para desconectar SEÑALES y RANURAS en las que se ha conectado initGui( self )
.
run( self )
Este es el método principal de su complemento. Aquí coloca el código que se ejecutará cuando el usuario haga clic en el botón de su complemento. En general, comienza obteniendo algunos datos del proyecto actual de QGIS y luego editando, procesando o informando. Depende totalmente de usted.
Si su complemento tiene un diálogo, este es el método donde debe abrirlo, para que el usuario pueda comenzar a interactuar con el diálogo. La lógica del diálogo normalmente se maneja en otros archivos de Python, para distribuir su código y favorecer el mantenimiento y la encapsulación.
Tenga en cuenta que run()
no es un buen lugar para establecer conexiones de SEÑAL / RANURA, porque al hacerlo, se establecerán cada vez que abra el cuadro de diálogo de su complemento, activando sus funciones (SLOT) varias veces como en Comportamiento extraño en un complemento QGIS: mi función es Se disparó dos veces .
Finalmente, la mejor manera de aprender a programar complementos QGIS es leer el código fuente de otros complementos. Comience con los simples y cuando los domine, continúe con los más complejos.
He creado un complemento de demostración (muy simple) para ayudarlo a comprender cómo funcionan los complementos QGIS. Puedes acceder desde aquí . Hay instrucciones de instalación en el archivo README. El complemento le permite saber, a través de cuadros de mensaje, cuándo se ejecuta cada función que solicitó.