Implementar una solución.
Desde layer.styleURI()
no te da la actualización del estilo, usted puede utilizar sus propias funciones para mantener un registro de sus estilos. Por ejemplo, mediante la aplicación de las siguientes funciones, usted podría conseguir estilos actualizados llamando styleURI( layer )
y loadNamedStyle( layer, stylePath )
.
Acaba de definir las funciones de esta manera:
def loadNamedStyle( layer, stylePath ):
res = layer.loadNamedStyle( stylePath )
if res[1]: # Style loaded
layer.setCustomProperty( "layerStyle", stylePath )
return True
return False
def styleURI( layer ):
return layer.customProperty( "layerStyle", "" )
Una vez que se ha definido, se podría hacer uso de ellos de esta manera:
layer = iface.activeLayer()
styleURI( layer ) # Will print "" (A style file hasn't been set)
loadNamedStyle( layer, "/path/to/mystyle.qml") # Prints True if style exists and applies it
styleURI( layer ) # Will print "/path/to/mystyle.qml" if previous line was True
Ya he usado propiedades personalizadas en estas funciones, el estilo de la ruta se guarda a través de sesiones sólo por el ahorro de su proyecto de QGIS.
Incluso se podría escribir las definiciones de función en una .py archivo (por ejemplo style_functions.py
) y guardarlo en la misma carpeta que el proyecto de QGIS. De esta manera, sólo se necesita escribir:
from style_functions import *
en el QGIS consola de Python para tener las funciones listo para ser utilizado.