Otros métodos para instanciar la clase QgsVectorGradientColorRampV2

En el post anterior se consideraron algunos procedimientos para instanciar las clases QgsVectorGradientColorRampV2 y QgsVectorGradientColorRampV2Dialog de PyQGIS. En el presente, vamos a considerar algunos métodos que nos introducirán a otro tipo de objeto de clase y que nos permitirá tener un mejor entendimiento de las interrelaciones entre las clases aquí consideradas.

Si se utiliza el plugin Get Pattern con la clase QgsVectorGradientColorRampV2, observamos que es relativamente pequeña en cuanto al número de elementos.

ramp1

Vamos a ver que hace el método ‘stops’. Por tanto, en la Python Console de QGIS:

myStops = myNewGradientColorRamp.stops()
myStops
[<qgis._core.QgsGradientStop object at 0xa39af80c>, 
<qgis._core.QgsGradientStop object at 0xa39af854>, 
<qgis._core.QgsGradientStop object at 0xa39af77c>, 
<qgis._core.QgsGradientStop object at 0xa39af7c4>, 
<qgis._core.QgsGradientStop object at 0xa39afbfc>, 
<qgis._core.QgsGradientStop object at 0xa39afc44>, 
<qgis._core.QgsGradientStop object at 0xa39afc8c>]

Se obtiene una lista de QgsGradientStop. ¿Esa es la estructura que debe tener el objeto a ser empleado con el método ‘setStops’? Vamos a comprobarlo sustituyendo los “stops” originales de la rampa gradiente ‘Spectral’ con myStops a ver que sucede. Para ello:

myGradientColorRamp = myStyle.colorRampRef(u'Spectral')
myGradientColorRamp.setStops(myStops)
window = QgsVectorGradientColorRampV2Dialog(myGradientColorRamp)
window.show()

Obteniéndose lo siguiente:

ramp2

lo cual permite verificar que esa es la estructura adecuada del argumento que hay que pasarle al método ‘setStops’ para asignar o sustituir los “stops” originales. Si usamos nuevamente ‘Get Pattern’ para obtener los métodos de clase de QgsGradientStop, tal como se tiene en la imagen siguiente, se puede detallar que prácticamente lo que presenta son dos métodos: ‘color’ y ‘offset’

ramp3

Instanciando dos objetos (g1, g2) de QgsGradientStop como se indica en el codigo siguiente, nuestro objetivo es ahora sustituirlos en la rampa gradiente modificada considerada anteriormente. Para ello, establecemos una lista nueva, myGradientStop, con g1 y g2. Después, sustituimos los “stops” anteriores con ‘setStops’ en myGradientColorRamp para, finalmente, mostrar esa rampa de color gradiente en el Dialog correspondiente (QgsVectorGradientColorRampV2Dialog).

g1 = QgsGradientStop(0.25, QColor('orange')) 
g2 = QgsGradientStop(0.50, QColor('yellow')) 
myGradientStop = [g1, g2]
myGradientColorRamp.setStops(myGradientStop)
window = QgsVectorGradientColorRampV2Dialog(myGradientColorRamp)
window.show()

El resultado de la ejecución en la Python Console del código anterior se visualiza en la imagen siguiente:

ramp4

Se observa que todos los “stops” anteriores fueron sustituidos por los nuevos.

Ahora sólo resta emplear este tipo de objetos en la categorización o clasificación por atributos para resaltar su importancia. Ese será tema de un post próximo.

Esta entrada fue publicada en PyQGIS, QGIS, SIG, Software Libre. Guarda el enlace permanente.

Una respuesta a Otros métodos para instanciar la clase QgsVectorGradientColorRampV2

  1. Pingback: La clase abstracta de C++, QgsFeatureRendererV2, en PyQGIS | El Blog de José Guerrero

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s