Class: QgsFeatureRendererGenerator

An interface for objects which generate feature renderers for vector layers.

Added in version 3.18.

Note

This is an abstract class, with methods which must be implemented by a subclass.

The following methods must be implemented: createRenderer(), id()

Abstract Methods

createRenderer

Creates a new feature renderer to use when rendering a vector layer.

id

Returns a unique ID string identifying the renderer generator.

Virtual Methods

In PyQGIS, only methods marked as virtual can be safely overridden in a Python subclass of QgsFeatureRendererGenerator. See the FAQ for more details.

level

Returns a double value which dictates the stacking or z order level associated with the returned renderer.

class qgis.core.QgsFeatureRendererGenerator[source]

Bases: object

abstract createRenderer(self) QgsFeatureRenderer | None[source]

Creates a new feature renderer to use when rendering a vector layer.

Caller takes ownership of the returned renderer.

Return type:

Optional[QgsFeatureRenderer]

abstract id(self) str[source]

Returns a unique ID string identifying the renderer generator.

Return type:

str

virtual level(self) float[source]

Returns a double value which dictates the stacking or z order level associated with the returned renderer.

A value > 0 will always be rendered AFTER the normal renderer for a vector layer (i.e. the renderer will be drawn on top of the normal feature renderer), while a value < 0 will always be rendered BEFORE the normal renderer (i.e. the rendered features will be drawn below the normal feature renderer).

Since a layer may potentially have multiple extra renderers created by QgsFeatureRendererGenerator subclasses, the level will always be used to control the order that these renderers are drawn. A renderer with a lower level() return value will always be drawn before those with a higher level() value.

The default implementation returns 1.0, i.e. features will be rendered ABOVE the normal vector layer renderer.

Note

If two QgsFeatureRendererGenerator implementations return the same level() value, then their ordering will be unpredictable.

Return type:

float