Los Plugins de QGIS extienden las funcionalidades del mismo. Nosotros podemos escribir desde herramientas muy simples hasta herramientas más sofisticadas.

crear_plugin_qgis

Visión General

En esta entrada crearemos un plugin muy sencillo para “mergear” dos layers cargados en el canvas en un solo, creando un layer temporal.

Herramientas necesarias

Las herramientas que necesitamos para el desarrollo de nuestro plugin son:

  • Qt Designer: QGISse escribe utilizando el marco deQt . Para el desarrollo de Plugins, usaremos una aplicación llamada Qt Designer para diseñar la interfaz para nuestro plugin. Se encuentra dentro del paquete deOSGeo4W.
  • Python Bindings para Qt: Para crear Plugins necesitamos la herramienta de comandos pyrcc4. Para eso necesitamos descargar el paquete de OSGeo4W.
    crear_plugin_qgis_1
  • Un editor de texto o un Python IDE: Aquí podemos elegir programas como Notepad ++, aunque debemos recordar que Python es sensitivo por lo que tenemos que ir con cuidado con las tabulaciones.
  • Plugin Builder: Con este plugin podemos crear toda la estructura necesaria de nuestro desarrollo.
  • Plugin Reloader: Necesaria para recargar nuestro plugin sin necesidad de cerrar y abrir Qgis.

Creamos la estructura de nuestro Plugin

Abrimos Qgis y vamos a Complementos y seleccionamos Plugin Builder:

crear_plugin_qgis_2

A continuación, se nos abrirá un dialogo y simplemente tenemos que ir rellenando la información que se nos pide:

crear_plugin_qgis_3

En la siguiente pantalla seleccionamos el tipo de plugin que queremos, en este caso será un botón en la barra de herramientas junto con un dialogo:

crear_plugin_qgis_4

Rellenamos el resto de pantallas hasta que nos pida donde guardar nuestro plugin.

Esta ruta dependerá del sistema operativo que tengamos:

Windows: c:\Users\username\.qgis2\python\plugins
Mac: /Users/username/.qgis2/python/plugins
Linux: /home/username/.qgis2/python/plugins

Donde tendremos que reemplazar “username” por nuestro usuario. Una vez guardado se nos mostrara la siguiente pantalla indicándonos la ruta y que todo ha salido correctamente.

crear_plugin_qgis_5

Podemos observar que el plugin se ha guardado en:

C:\Users\francisco\.qgis2\python\plugins\mergelayers

Compilación

El siguiente paso es compilar el fichero de recursos resources.qrc para ello debemos lanzar la consola de OSGeo4W, y dirigirnos donde tenemos nuestro plugin y ejecutar el comando make.

cd c:\Users\username\.qgis2\python\plugins\mergelayers

crear_plugin_qgis_6

Creación del interfaz

Para la creación del interfaz, abrimos QT Designer y en este caso añadimos dos labels, dos desplegables y un botón el cual realizaría el mergeo entre los layers seleccionados en los desplegables.

Para ello, abrimos nuestro fichero *.ui “merge_layers_dialog_base.ui” y le añadimos los objetos mencionados con anterioridad.

crear_plugin_qgis_7

Código de nuestro plugin

Una vez tenemos todo solo nos falta algo muy importante y es que nuestro plugin funcione.

Para ello, abrimos Qgis y lo primero que debemos es seleccionar en la configuración del plugin descargado “Plugin Reloader”, nuestro plugin.

crear_plugin_qgis_8

Una vez seleccionado deberemos cargar algunos layers, para poder realizar y comprobar nuestro desarrollo, por ejemplo podemos descargar información de España desde la siguiente web.

Ahora, por ultimo, solo tenemos que escribir nuestro código. Para ello, nos dirigimos al archivo “merge_layers.py” y en concreto al método run () donde escribiremos nuestro código.

tabla1

Donde la función merge_selected () nos realizara el proceso con los layers seleccionados en los desplegables y la última línea es la señal al botón, para que ejecute dicha función

self.dlg.btn_merge.clicked.connect(merge_selected)

Resultado

crear_plugin_qgis_9

Para ampliar los conocimientos y realizar Plugins más sofisticados, recordad que podéis apuntaros al curso de desarrollo de Plugins para Qgis, donde toda esta información será ampliada.

Formación de calidad impartida por profesionales

plugins en pyQGIS python en Qgis