Utilizar complemento Capas¶
Advertencia
Despite our constant efforts, information beyond this line may not be updated for QGIS 3. Refer to https://qgis.org/pyqgis/master for the python API documentation or, give a hand to update the chapters you know about. Thanks.
Si su complemento utiliza métodos propios para representar una capa de mapa, escribir su propio tipo de capa basado en QgsPluginLayer puede ser la mejor forma de implementarla.
- PENDIENTE:
Comprobar la corrección y elaborar buenos casos de uso de QgsPluginLayer
Subclassing QgsPluginLayer¶
A continuación es un ejemplo de una implementación mínima de QgsPluginLayer. Es un extracto del Complemento de ejemplo de marca de agua
class WatermarkPluginLayer(QgsPluginLayer):
LAYER_TYPE="watermark"
def __init__(self):
QgsPluginLayer.__init__(self, WatermarkPluginLayer.LAYER_TYPE, "Watermark plugin layer")
self.setValid(True)
def draw(self, rendererContext):
image = QImage("myimage.png")
painter = rendererContext.painter()
painter.save()
painter.drawImage(10, 10, image)
painter.restore()
return True
Métodos de lectura y escritura de información especifica para el archivo del proyecto también puede ser añadido
def readXml(self, node):
pass
def writeXml(self, node, doc):
pass
Al cargar un proyecto que contiene una capa de este tipo, se necesita una clase de fábrica
class WatermarkPluginLayerType(QgsPluginLayerType):
def __init__(self):
QgsPluginLayerType.__init__(self, WatermarkPluginLayer.LAYER_TYPE)
def createLayer(self):
return WatermarkPluginLayer()
Se puede también añadir código para mostrar información personalizada en las propiedades de la capa
def showLayerProperties(self, layer):
pass