Tengo un stand-alone pyqgis aplicación que puede mostrar los datos vectoriales. He implementado una rutina que establece la capa de procesador de la siguiente manera:
def set_sym(layer):
symbol = QgsMarkerSymbolV2.createSimple({})
symbol_layer = QgsSimpleMarkerSymbolLayerV2()
symbol_layer.setColor(QColor(0, 0, 0, 255))
symbol_layer.setName('circle')
symbol_layer.setSize(1.0)
symbol.appendSymbolLayer(symbol_layer)
renderer = QgsSingleSymbolRendererV2(symbol)
layer.setRendererV2(renderer)
Funciona. Sin embargo, si me llaman de un segundo tiempo en una capa, a continuación, vaya inmediatamente a la salida del programa, se cuelga & tengo que matar el fondo de python proceso para salir de ella. Ya he comprobado que el recién creado renderer y la capa.rendererV2() son diferentes y su símbolo() también son diferentes (me refiero a las direcciones de memoria son diferentes). Así que, me hace pensar que el setRendererV2() de rutina no es la sustitución del representador limpiamente, de ahí colgando en el programa al dejar de fumar justo después de la segunda llamada en la misma capa. Por favor, hágamelo saber si hay algo de lo perdido que provocó esto.