Francisco Raga López
2016
Desarrollo de Plugins usando PyQgis para Qgis
Francisco Raga López
Ingeniero en Cartografía y Geodesia
Analista / Desarrollador de Software Gis
Qt Designer: QGIS se escribe utilizando el marco de Qt. 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 de OSGeo4W.
Python Bindings para Qt : Para crear plugins necesitamos la herramienta de comandos pyrcc4.Para eso necesitamos descargar el paquete de OSGeo4W.
Link PyDev
http://www.eclipse.org/
https://plugins.qgis.org/plugins/pluginbuilder/
https://plugins.qgis.org/plugins/plugin_reloader/
Resumen pasos necesarios:
1
2
3
Windows
Mac
Linux
c:\Users\username\.qgis2\python\plugins
/Users/username/.qgis2/python/plugins
/home/username/.qgis2/python/plugins
Rutas
4
C:\Users\<username>\.qgis2\python\plugins\GetLayers
Necesitamos compilar el fichero de recursos resources.qrc
make
C:\Users\<username>\.qgis2\python\plugins\GetLayers
1
Seleccionamos el plugin en la configuración de Plugin Reloader
2
Abrimos Qt Designer y dejamos Qgis abierto
Descarga Cartografìa
Abrimos el fichero get_layers.py y modificamos el método run()
def run(self):
"""Run method that performs all the real work"""
#Populate Combobox
layers = self.iface.legendInterface().layers()
layer_list = []
layer_list = [layer.name() for layer in layers]
self.dlg.comboBox.clear()
self.dlg.comboBox.addItems(layer_list)
# show the dialog
self.dlg.show()
def layer_field():
# Identify selected layer by its index
selectedLayerIndex = self.dlg.comboBox.currentIndex()
selectedLayer = layers[selectedLayerIndex]
self.iface.mapCanvas().setExtent(selectedLayer.extent())
self.iface.mapCanvas().refresh()
#Signal
self.dlg.pushButton.clicked.connect(layer_field)
Gracias por su atención
"Emplear software libre es más divertido si participamos en él !! "