QGIS – Programmatically Change Outline Colour of Circles Using Python

pythonqgis

I have a vector layer with a "Simple Marker" for the style. I see I can create Data Defined properties for both the colour and the outline colours.

In Python, I'm able to change the marker's base colour (for the data defined property), but I can't seem to find how to change the outline's colour.

Here's what I have:

symbols = layer.rendererV2().symbols()
symbol = symbols[0]

expr = 'color_rgba(255,0,0,0)'
symbol.symbolLayer(0).setDataDefinedProperty('color', expr)

# I would expect this to work, but it doesn't
symbol.symbolLayer(0).setDataDefinedProperty('outlineColor', expr)

Any ideas?

Best Answer

Next code works [but I used 'color_rgba(255,0,0,255)' to avoid complete transparency]; where 'color_border' is the adequate property for color border.

layer = iface.activeLayer()

symbols = layer.rendererV2().symbols()

symbol = symbols[0]

expr = 'color_rgba(255,0,0,255)'
symbol.symbolLayer(0).setDataDefinedProperty('color', expr)

# I would expect this to work, but it doesn't
symbol.symbolLayer(0).setDataDefinedProperty('color_border', expr)

layer.triggerRepaint()

iface.legendInterface().refreshLayerSymbology(layer)