Class: QgsLayerTreeModelLegendNode

class qgis.core.QgsLayerTreeModelLegendNode(nodeL: QgsLayerTreeLayer, parent: QObject = None)

Bases: PyQt5.QtCore.QObject

Construct the node with pointer to its parent layer node

The QgsLegendRendererItem class is abstract interface for legend items returned from QgsMapLayerLegend implementation.

The objects are used in QgsLayerTreeModel. Custom implementations may offer additional interactivity and customized look.

New in version 2.6: Enums

Methods

childEvent

connectNotify

createTemporaryRenderContext

Returns a temporary context or None if legendMapViewData are not valid

customEvent

data

Returns data associated with the item.

disconnectNotify

draw

Entry point called from QgsLegendRenderer to do the rendering.

drawSymbol

Draws symbol on the left side of the item

drawSymbolText

Draws label on the right side of the item

exportSymbolTextToJson

Adds a label in a JSON object with the key “title”.

exportSymbolToJson

Adds a symbol in base64 string within a JSON object with the key “icon”.

exportToJson

Entry point called from QgsLegendRenderer to do the rendering in a JSON object.

flags

Returns item flags associated with the item.

invalidateMapBasedData

Notification from model that information from associated map view has changed.

isEmbeddedInParent

isScaleOK

isSignalConnected

layerNode

Returns pointer to the parent layer node

model

Returns pointer to model owning this legend node

receivers

sender

senderSignalIndex

setData

Sets some data associated with the item.

setEmbeddedInParent

setUserLabel

timerEvent

userLabel

Signals

dataChanged

Emitted on internal data change so the layer tree model can forward the signal to views [signal]

Attributes

ParentRuleKeyRole

RuleKeyRole

class ItemContext

Bases: sip.wrapper

QgsLayerTreeModelLegendNode.ItemContext(QgsLayerTreeModelLegendNode.ItemContext)

columnLeft
columnRight
context
labelXOffset
maxSiblingSymbolWidth
painter
point
top
class ItemMetrics

Bases: sip.wrapper

QgsLayerTreeModelLegendNode.ItemMetrics(QgsLayerTreeModelLegendNode.ItemMetrics)

labelSize
symbolSize
class LegendNodeRoles

Bases: int

ParentRuleKeyRole = 257
RuleKeyRole = 256
childEvent()
connectNotify()
createTemporaryRenderContext(self) → QgsRenderContext

Returns a temporary context or None if legendMapViewData are not valid

customEvent()
data(self, role: int) → Any

Returns data associated with the item. Must be implemented in derived class.

dataChanged

Emitted on internal data change so the layer tree model can forward the signal to views [signal]

disconnectNotify()
draw(self, settings: QgsLegendSettings, ctx: QgsLayerTreeModelLegendNode.ItemContext) → QgsLayerTreeModelLegendNode.ItemMetrics

Entry point called from QgsLegendRenderer to do the rendering. Default implementation calls drawSymbol() and drawSymbolText() methods.

If ctx is None, this is just first stage when preparing layout - without actual rendering.

drawSymbol(self, settings: QgsLegendSettings, ctx: QgsLayerTreeModelLegendNode.ItemContext, itemHeight: float) → QSizeF

Draws symbol on the left side of the item

Parameters
  • settings – Legend layout configuration

  • ctx – Context for rendering - may be None if only doing layout without actual rendering

  • itemHeight – Minimal height of the legend item - used for correct positioning when rendering

Returns

Real size of the symbol (may be bigger than “normal” symbol size from settings)

drawSymbolText(self, settings: QgsLegendSettings, ctx: QgsLayerTreeModelLegendNode.ItemContext, symbolSize: QSizeF) → QSizeF

Draws label on the right side of the item

Parameters
  • settings – Legend layout configuration

  • ctx – Context for rendering - may be None if only doing layout without actual rendering

  • symbolSize – Real size of the associated symbol - used for correct positioning when rendering

Returns

Size of the label (may span multiple lines)

exportSymbolTextToJson(self, settings: QgsLegendSettings, json: Dict[str, Union[QJsonValue, QJsonValue.Type, Iterable[QJsonValue], bool, int, float, str]])

Adds a label in a JSON object with the key “title”.

Parameters
  • settings – Legend layout configuration

  • json – The json object to update

New in version 3.8.

exportSymbolToJson(self, settings: QgsLegendSettings, context: QgsRenderContext, json: Dict[str, Union[QJsonValue, QJsonValue.Type, Iterable[QJsonValue], bool, int, float, str]])

Adds a symbol in base64 string within a JSON object with the key “icon”.

Parameters
  • settings – Legend layout configuration

  • context – Rendering context

  • json – The json object to update

New in version 3.8.

exportToJson(self, settings: QgsLegendSettings, context: QgsRenderContext, json: Dict[str, Union[QJsonValue, QJsonValue.Type, Iterable[QJsonValue], bool, int, float, str]])

Entry point called from QgsLegendRenderer to do the rendering in a JSON object.

Parameters
  • settings – Legend layout configuration

  • context – Rendering context

  • json – The json object to update

New in version 3.8.

flags(self) → Qt.ItemFlags

Returns item flags associated with the item. Default implementation returns Qt.ItemIsEnabled.

invalidateMapBasedData(self)

Notification from model that information from associated map view has changed. Default implementation does nothing. *

isEmbeddedInParent(self) → bool
isScaleOK(self, scale: float) → bool
isSignalConnected()
layerNode(self) → QgsLayerTreeLayer

Returns pointer to the parent layer node

model(self) → QgsLayerTreeModel

Returns pointer to model owning this legend node

receivers()
sender()
senderSignalIndex()
setData(self, value: Any, role: int) → bool

Sets some data associated with the item. Default implementation does nothing and returns False.

setEmbeddedInParent(self, embedded: bool)
setUserLabel(self, userLabel: str)
timerEvent()
userLabel(self) → str