Class: QgsLayerTreeModelLegendNode

class qgis.core.QgsLayerTreeModelLegendNode

Bases: PyQt5.QtCore.QObject

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.

QgsLayerTreeModelLegendNode(nodeL: QgsLayerTreeLayer, parent: QObject = None) Construct the node with pointer to its parent layer node

Methods

checkAllItems

Checks all checkable items belonging to the same layer as this node.

childEvent

columnBreak

Returns whether a forced column break should occur before the node.

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

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

rtype:

bool

isScaleOK

param scale:

isSignalConnected

layerNode

Returns pointer to the parent layer node

model

Returns pointer to model owning this legend node

receivers

sender

senderSignalIndex

setColumnBreak

Sets whether a forced column break should occur before the node.

setData

Sets some data associated with the item.

setEmbeddedInParent

param embedded:

setUserLabel

param userLabel:

setUserPatchSize

Sets the user (overridden) size for the legend node.

timerEvent

toggleAllItems

Toggle all checkable items belonging to the same layer as this node.

uncheckAllItems

Unchecks all checkable items belonging to the same layer as this node.

userLabel

rtype:

str

userPatchSize

Returns the user (overridden) size for the legend node.

Signals

dataChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

sizeChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

Attributes

ColorRampLegend

DataDefinedSizeLegend

EmbeddedWidget

ImageLegend

NodeTypeRole

ParentRuleKeyRole

RasterSymbolLegend

RuleKeyRole

SimpleLegend

SymbolLegend

WmsLegend

ColorRampLegend = 7
DataDefinedSizeLegend = 5
EmbeddedWidget = 6
ImageLegend = 3
class ItemContext
class ItemContext(QgsLayerTreeModelLegendNode.ItemContext)

Bases: sip.wrapper

columnLeft
columnRight
context
labelXOffset
maxSiblingSymbolWidth
painter
patchShape
patchSize
point
top
class ItemMetrics
class ItemMetrics(QgsLayerTreeModelLegendNode.ItemMetrics)

Bases: sip.wrapper

labelSize
symbolSize
class LegendNodeRoles

Bases: int

NodeTypeRole = 258
class NodeTypes

Bases: int

ParentRuleKeyRole = 257
RasterSymbolLegend = 2
RuleKeyRole = 256
SimpleLegend = 0
SymbolLegend = 1
WmsLegend = 4
checkAllItems(self)

Checks all checkable items belonging to the same layer as this node.

See also

toggleAllItems()

New in version 3.18.

childEvent(self, QChildEvent)
columnBreak(self) bool

Returns whether a forced column break should occur before the node.

See also

setColumnBreak()

New in version 3.14.

Return type:

bool

connectNotify(self, QMetaMethod)
createTemporaryRenderContext(self) QgsRenderContext

Returns a temporary context or None if legendMapViewData are not valid

Return type:

QgsRenderContext

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

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

Parameters:

role (int) –

Return type:

Any

dataChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

disconnectNotify(self, QMetaMethod)
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.

Parameters:
Return type:

QgsLayerTreeModelLegendNode.ItemMetrics

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

Draws symbol on the left side of the item

Parameters:
  • settings (QgsLegendSettings) – Legend layout configuration

  • ctx (QgsLayerTreeModelLegendNode.ItemContext) – Context for rendering - may be None if only doing layout without actual rendering

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

Return type:

QSizeF

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 (QgsLegendSettings) – Legend layout configuration

  • ctx (QgsLayerTreeModelLegendNode.ItemContext) – Context for rendering - may be None if only doing layout without actual rendering

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

Return type:

QSizeF

Returns:

Size of the label (may span multiple lines)

exportSymbolToJson(self, settings: QgsLegendSettings, context: QgsRenderContext) Dict[str, QJsonValue]

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

Parameters:

New in version 3.8.

Return type:

Dict[str, QJsonValue]

exportToJson(self, settings: QgsLegendSettings, context: QgsRenderContext) Dict[str, QJsonValue]

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

Parameters:

New in version 3.8.

Return type:

Dict[str, QJsonValue]

flags(self) Qt.ItemFlags

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

Return type:

Qt.ItemFlags

invalidateMapBasedData(self)

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

isEmbeddedInParent(self) bool
Return type:

bool

isScaleOK(self, scale: float) bool
Parameters:

scale (float) –

Return type:

bool

isSignalConnected(self, QMetaMethod) bool
layerNode(self) QgsLayerTreeLayer

Returns pointer to the parent layer node

Return type:

QgsLayerTreeLayer

model(self) QgsLayerTreeModel

Returns pointer to model owning this legend node

Return type:

QgsLayerTreeModel

receivers(self, PYQT_SIGNAL) int
sender(self) QObject
senderSignalIndex(self) int
setColumnBreak(self, breakBeforeNode: bool)

Sets whether a forced column break should occur before the node.

See also

columnBreak()

New in version 3.14.

Parameters:

breakBeforeNode (bool) –

setData(self, value: Any, role: int) bool

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

Parameters:
  • value (Any) –

  • role (int) –

Return type:

bool

setEmbeddedInParent(self, embedded: bool)
Parameters:

embedded (bool) –

setUserLabel(self, userLabel: str)
Parameters:

userLabel (str) –

setUserPatchSize(self, size: QSizeF)

Sets the user (overridden) size for the legend node.

If either the width or height are non-zero, they will be used when rendering the legend node instead of the default symbol width or height from QgsLegendSettings.

See also

userPatchSize()

New in version 3.14.

Parameters:

size (QSizeF) –

sizeChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

timerEvent(self, QTimerEvent)
toggleAllItems(self)

Toggle all checkable items belonging to the same layer as this node.

See also

checkAllItems()

New in version 3.18.

uncheckAllItems(self)

Unchecks all checkable items belonging to the same layer as this node.

See also

checkAllItems()

See also

toggleAllItems()

New in version 3.18.

userLabel(self) str
Return type:

str

userPatchSize(self) QSizeF

Returns the user (overridden) size for the legend node.

If either the width or height are non-zero, they will be used when rendering the legend node instead of the default symbol width or height from QgsLegendSettings.

New in version 3.14.

Return type:

QSizeF