Graphics Reference
In-Depth Information
Implementing renderers in Python
If you need to choose symbols based on more complicated criteria than the built-in render-
ers will provide, you can write your own custom QgsFeatureRendererV2 subclass us-
ing Python. For example, the following Python code implements a simple renderer that al-
ternates between odd and even symbols as point features are displayed:
class OddEvenRenderer(QgsFeatureRendererV2):
def __init__(self):
QgsFeatureRendererV2.__init__(self,
"OddEvenRenderer")
self.evenSymbol = QgsMarkerSymbolV2.createSimple({})
self.evenSymbol.setColor(QColor("light gray"))
self.oddSymbol = QgsMarkerSymbolV2.createSimple({})
self.oddSymbol.setColor(QColor("black"))
self.n = 0
def clone(self):
return OddEvenRenderer()
def symbolForFeature(self, feature):
self.n = self.n + 1
if self.n % 2 == 0:
return self.evenSymbol
else:
return self.oddSymbol
def startRender(self, context, layer):
self.n = 0
self.oddSymbol.startRender(context)
self.evenSymbol.startRender(context)
def stopRender(self, context):
self.oddSymbol.stopRender(context)
self.evenSymbol.stopRender(context)
def usedAttributes(self):
return []
Search WWH ::




Custom Search