jueves, 3 de enero de 2019

Otras funciones de edición de capas vectoriales de QgsVectorLayerTools en PyQGIS 3

Los métodos para el inicio y finalización de la edición de capas vectoriales, 'startEditing' y 'commitChanges', se encuentran en la clase QgsVectorLayer. Sin embargo, métodos que realizan lo mismo pueden ser invocados a través de la clase QgsVectorLayerTools. No obstante, esta última es una clase compleja de C++ que tiene que ser instanciada de manera diferente a lo usual.

El método 'vectorLayerTools' de iface es el que permite convertir objetos de la clase QgisInterface (iface) en objetos de la clase QgsVectorLayerTools. Con el plugin Get Pattern de la imagen siguiente se puede corroborar la existencia de los métodos requeridos.


Con los comandos siguientes en la Python Console:

>>>layer = iface.activeLayer()
>>>iface.vectorLayerTools().startEditing(layer)
True

se puede observar en la imagen siguiente que la capa está lista para editar:


Para salvar los cambios se recurre al comando:

>>>iface.vectorLayerTools().stopEditing(layer,False)
True

cuyo resultado (parar la edición) se puede apreciar a continuación:


No hay comentarios: