Class: QgsSymbolLayerId

We may need stable references to symbol layers, when pointers to symbol layers are not usable (when a symbol or a feature renderer is cloned for example).

A symbol layer identifier consists of:

  • an identifier to its symbol (given by the QgsFeatureRenderer)

  • a path of indexes inside its symbol and subsymbols.

For a symbol in a QgsSingleSymbolRenderer that has two symbol layers, it will give:

  • “” for the symbol key

  • [0] and [1] for the two symbol layer indexes

For a QgsRuleBasedRenderer each rule key is the symbol key.

For a symbol with a symbol layer that has a sub symbol (say a QgsArrowSymbolLayer), path to symbol layers of the sub symbol are given by a list of indexes:

  • [0, 0] : first symbol layer of the sub symbol of the first symbol layer

  • [0, 1] : second symbol layer of the sub symbol of the first symbol layer

  • [2, 0] : first symbol layer of the sub symbol of the third symbol layer, etc.

Added in version 3.12.

Deprecated since version 3.30: Replaced by QUuid to identify symbol layers.

Methods

symbolKey

Returns the key associated to the symbol

symbolLayerIndexPath

Returns the symbol layer index path inside the symbol

class qgis.core.QgsSymbolLayerId[source]

Bases: object

__init__()
__init__(key: str | None, index: int)

QgsSymbolLayerId constructor with a symbol key and a unique symbol layer index

Parameters:
  • key (Optional[str])

  • index (int)

__init__(key: str | None, indexPath: Iterable[int])

QgsSymbolLayerId constructor with a symbol key and an index path

Parameters:
  • key (Optional[str])

  • indexPath (Iterable[int])

__init__(other: QgsSymbolLayerId)
Parameters:

other (QgsSymbolLayerId)

symbolKey(self) str[source]

Returns the key associated to the symbol

Return type:

str

symbolLayerIndexPath(self) List[int]

Returns the symbol layer index path inside the symbol

Return type:

List[int]