Class: QgsLayerTreeModel

class qgis.core.QgsLayerTreeModel

Bases: PyQt5.QtCore.QAbstractItemModel

The QgsLayerTreeModel class is model implementation for Qt item views framework.

The model can be used in any QTreeView, it is however recommended to use it with QgsLayerTreeView which brings additional functionality specific to layer tree handling.

The model listens to the changes in the layer tree and signals the changes as appropriate, so that any view that uses the model is updated accordingly.

Behavior of the model can be customized with flags. For example, whether to show legend or whether to allow changes to the layer tree.

See also

QgsLayerTreeView

QgsLayerTreeModel(rootNode: QgsLayerTree, parent: QObject = None) Construct a new tree model with given layer tree (root node must not be None). The root node is not transferred by the model.

Methods

addLegendToLayer

param nodeL:

addTargetScreenProperties

Adds additional target screen properties to use when generating icons for Qt.DecorationRole data.

autoCollapseLegendNodes

Returns at what number of legend nodes the layer node should be collapsed.

beginInsertColumns

beginInsertRows

beginMoveColumns

beginMoveRows

beginRemoveColumns

beginRemoveRows

beginResetModel

changePersistentIndex

changePersistentIndexList

childEvent

columnCount

param parent:

connectNotify

connectToLayer

param nodeLayer:

connectToLayers

param parentGroup:

connectToRootNode

createIndex

currentIndex

Gets index of the item marked as current.

customEvent

data

param index:

decodeData

disconnectFromLayer

param nodeLayer:

disconnectFromLayers

param parentGroup:

disconnectFromRootNode

disconnectNotify

dropMimeData

param data:

encodeData

endInsertColumns

endInsertRows

endMoveColumns

endMoveRows

endRemoveColumns

endRemoveRows

endResetModel

filterLegendNodes

Filter nodes from QgsMapLayerLegend according to the current filtering rules

filterSettings

Returns the filter settings to use to filter legend nodes.

findLegendNode

Searches through the layer tree to find a legend node with a matching layer ID and rule key.

flags

flags(self) -> QgsLayerTreeModel.Flags Returns OR-ed combination of model flags

hitTestInProgress

Returns True if a hit test for visible legend items is currently in progress.

iconGroup

rtype:

QIcon

index

param row:

index2legendNode

Returns legend node for given index.

index2node

Returns layer tree node for given index.

indexOfParentLayerTreeNode

param parentNode:

indexes2nodes

Convert a list of indexes to a list of layer tree nodes.

invalidateLegendMapBasedData

isSignalConnected

layerFlagsChanged

Emitted when layer flags have changed.

layerLegendChanged

layerLegendNodes

Returns filtered list of active legend nodes attached to a particular layer node (by default it returns also legend node embedded in parent layer node (if any) unless skipNodeEmbeddedInParent is True)

layerNeedsUpdate

layerOriginalLegendNodes

Returns original (unfiltered) list of legend nodes attached to a particular layer node

layerStyleOverrides

Gets map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one

layerTreeNodeFont

Gets font for a particular type of layer tree node.

legendCleanup

legendEmbeddedInParent

param nodeLayer:

legendFilterByScale

Returns the scale which restricts the legend nodes which are visible.

legendFilterMapSettings

Returns the current map settings used for the current legend filter (or None if none is enabled)

legendIconEmbeddedInParent

param nodeLayer:

legendInvalidateMapBasedData

legendMapViewData

Gets hints about map view - to be used in legend nodes.

legendNode2index

Returns index for a given legend node.

legendNodeData

param node:

legendNodeDataChanged

legendNodeEmbeddedInParent

Returns legend node that may be embedded in parent (i.e. its icon will be used for layer's icon).

legendNodeFlags

param node:

legendNodeIndex

param row:

legendNodeRowCount

param node:

legendParent

param legendNode:

legendRootIndex

param row:

legendRootRowCount

param nL:

mimeData

param indexes:

mimeTypes

rtype:

List[str]

node2index

Returns index for a given node.

nodeAddedChildren

param node:

nodeCustomPropertyChanged

param node:

nodeLayerLoaded

nodeLayerWillBeUnloaded

nodeNameChanged

Updates model when node's name has changed

nodeRemovedChildren

nodeVisibilityChanged

param node:

nodeWillAddChildren

param node:

nodeWillRemoveChildren

param node:

parent

param child:

persistentIndexList

receivers

recursivelyEmitDataChanged

emit dataChanged() for layer tree node items

refreshLayerLegend

Force a refresh of legend nodes of a layer node.

refreshScaleBasedLayers

Updates layer data for scale dependent layers, should be called when map scale changes.

removeLegendFromLayer

param nodeLayer:

removeRows

param row:

resetInternalData

rootGroup

Returns pointer to the root node of the layer tree.

rowCount

param parent:

scaleIconSize

Scales an layer tree model icon size to compensate for display pixel density, making the icon size hi-dpi friendly, whilst still resulting in pixel-perfect sizes for low-dpi displays.

sender

senderSignalIndex

setAutoCollapseLegendNodes

Sets at what number of legend nodes the layer node should be collapsed.

setCurrentIndex

Sets index of the current item.

setData

param index:

setFilterSettings

Sets the filter settings to use to filter legend nodes.

setFlag

Enable or disable a model flag

setFlags

Sets OR-ed combination of model flags

setLayerStyleOverrides

Sets map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one

setLayerTreeNodeFont

Sets font for a particular type of layer tree node.

setLegendFilter

Filter display of legend nodes for given map settings

setLegendFilterByMap

Force only display of legend nodes which are valid for given map settings.

setLegendFilterByScale

Force only display of legend nodes which are valid for a given scale.

setLegendMapViewData

Give the layer tree model hints about the currently associated map view so that legend nodes that use map units can be scaled correctly

setRootGroup

Reset the model and use a new root group node

supportedDropActions

rtype:

Qt.DropActions

targetScreenProperties

Returns the target screen properties to use when generating icons.

testFlag

Check whether a flag is enabled

timerEvent

waitForHitTestBlocking

When a current hit test for visible legend items is in progress, calling this method will block until that hit test is complete.

Signals

hitTestCompleted

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

hitTestStarted

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

messageEmitted

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

Attributes

ActionHierarchical

AllowLegendChangeState

AllowNodeChangeVisibility

AllowNodeRename

AllowNodeReorder

DeferredLegendInvalidation

ShowLegend

ShowLegendAsTree

UseEmbeddedWidgets

UseTextFormatting

UseThreadedHitTest

ActionHierarchical = 65536
AllowLegendChangeState = 32768
AllowNodeChangeVisibility = 16384
AllowNodeRename = 8192
AllowNodeReorder = 4096
DeferredLegendInvalidation = 8
class Flag

Bases: int

class Flags
class Flags(Union[QgsLayerTreeModel.Flags, QgsLayerTreeModel.Flag])
class Flags(QgsLayerTreeModel.Flags)

Bases: sip.wrapper

ShowLegend = 1
ShowLegendAsTree = 4
UseEmbeddedWidgets = 16
UseTextFormatting = 32
UseThreadedHitTest = 131072
addLegendToLayer(self, nodeL: QgsLayerTreeLayer)
Parameters:

nodeL (QgsLayerTreeLayer) –

addTargetScreenProperties(self, properties: QgsScreenProperties)

Adds additional target screen properties to use when generating icons for Qt.DecorationRole data.

This allows icons to be generated at an icon device pixel ratio and DPI which corresponds exactly to the view’s screen properties in which this model is used.

New in version 3.32.

Parameters:

properties (QgsScreenProperties) –

autoCollapseLegendNodes(self) int

Returns at what number of legend nodes the layer node should be collapsed. -1 means no auto-collapse (default).

Return type:

int

beginInsertColumns(self, QModelIndex, int, int)
beginInsertRows(self, QModelIndex, int, int)
beginMoveColumns(self, QModelIndex, int, int, QModelIndex, int) bool
beginMoveRows(self, QModelIndex, int, int, QModelIndex, int) bool
beginRemoveColumns(self, QModelIndex, int, int)
beginRemoveRows(self, QModelIndex, int, int)
beginResetModel(self)
changePersistentIndex(self, QModelIndex, QModelIndex)
changePersistentIndexList(self, Iterable[QModelIndex], Iterable[QModelIndex])
childEvent(self, QChildEvent)
columnCount(self, parent: QModelIndex = QModelIndex()) int
Parameters:

parent (QModelIndex = QModelIndex()) –

Return type:

int

connectNotify(self, QMetaMethod)
connectToLayer(self, nodeLayer: QgsLayerTreeLayer)
Parameters:

nodeLayer (QgsLayerTreeLayer) –

connectToLayers(self, parentGroup: QgsLayerTreeGroup)
Parameters:

parentGroup (QgsLayerTreeGroup) –

connectToRootNode(self)
createIndex(self, int, int, object: object = 0) QModelIndex
currentIndex(self) QModelIndex

Gets index of the item marked as current. Item marked as current is underlined.

Return type:

QModelIndex

customEvent(self, QEvent)
data(self, index: QModelIndex, role: int = Qt.DisplayRole) Any
Parameters:
  • index (QModelIndex) –

  • role (int = Qt.DisplayRole) –

Return type:

Any

decodeData(self, int, int, QModelIndex, QDataStream) bool
disconnectFromLayer(self, nodeLayer: QgsLayerTreeLayer)
Parameters:

nodeLayer (QgsLayerTreeLayer) –

disconnectFromLayers(self, parentGroup: QgsLayerTreeGroup)
Parameters:

parentGroup (QgsLayerTreeGroup) –

disconnectFromRootNode(self)
disconnectNotify(self, QMetaMethod)
dropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
Parameters:
  • data (QMimeData) –

  • action (Qt.DropAction) –

  • row (int) –

  • column (int) –

  • parent (QModelIndex) –

Return type:

bool

encodeData(self, Iterable[QModelIndex], QDataStream)
endInsertColumns(self)
endInsertRows(self)
endMoveColumns(self)
endMoveRows(self)
endRemoveColumns(self)
endRemoveRows(self)
endResetModel(self)
filterLegendNodes(self, nodes: Iterable[QgsLayerTreeModelLegendNode]) List[QgsLayerTreeModelLegendNode]

Filter nodes from QgsMapLayerLegend according to the current filtering rules

Parameters:

nodes (Iterable[QgsLayerTreeModelLegendNode]) –

Return type:

List[QgsLayerTreeModelLegendNode]

filterSettings(self) QgsLayerTreeFilterSettings

Returns the filter settings to use to filter legend nodes. May be None.

New in version 3.32.

Return type:

QgsLayerTreeFilterSettings

findLegendNode(self, layerId: str, ruleKey: str) QgsLayerTreeModelLegendNode

Searches through the layer tree to find a legend node with a matching layer ID and rule key.

Parameters:
  • layerId (str) – map layer ID

  • ruleKey (str) – legend node rule key

Return type:

QgsLayerTreeModelLegendNode

Returns:

QgsLayerTreeModelLegendNode if found

flags(self, index: QModelIndex) Qt.ItemFlags

flags(self) -> QgsLayerTreeModel.Flags Returns OR-ed combination of model flags

Parameters:

index (QModelIndex) –

Return type:

Qt.ItemFlags

hitTestCompleted

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

hitTestInProgress(self) bool

Returns True if a hit test for visible legend items is currently in progress.

See also

hitTestStarted()

New in version 3.32.

Return type:

bool

hitTestStarted

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

iconGroup() QIcon
Return type:

QIcon

index(self, row: int, column: int, parent: QModelIndex = QModelIndex()) QModelIndex
Parameters:
  • row (int) –

  • column (int) –

  • parent (QModelIndex = QModelIndex()) –

Return type:

QModelIndex

index2legendNode(index: QModelIndex) QgsLayerTreeModelLegendNode

Returns legend node for given index. Returns None for invalid index

Parameters:

index (QModelIndex) –

Return type:

QgsLayerTreeModelLegendNode

index2node(self, index: QModelIndex) QgsLayerTreeNode

Returns layer tree node for given index. Returns root node for invalid index. Returns None if index does not refer to a layer tree node (e.g. it is a legend node)

Parameters:

index (QModelIndex) –

Return type:

QgsLayerTreeNode

indexOfParentLayerTreeNode(self, parentNode: QgsLayerTreeNode) QModelIndex
Parameters:

parentNode (QgsLayerTreeNode) –

Return type:

QModelIndex

indexes2nodes(self, list: Iterable[QModelIndex], skipInternal: bool = False) List[QgsLayerTreeNode]

Convert a list of indexes to a list of layer tree nodes. Indices that do not represent layer tree nodes are skipped. If skipInternal is True, a node is included in the output list only if no parent node is in the list.

Parameters:
  • list (Iterable[QModelIndex]) –

  • skipInternal (bool = False) –

Return type:

List[QgsLayerTreeNode]

invalidateLegendMapBasedData(self)
isSignalConnected(self, QMetaMethod) bool
layerFlagsChanged(self)

Emitted when layer flags have changed.

New in version 3.18.

layerLegendChanged(self)
layerLegendNodes(self, nodeLayer: QgsLayerTreeLayer, skipNodeEmbeddedInParent: bool = False) List[QgsLayerTreeModelLegendNode]

Returns filtered list of active legend nodes attached to a particular layer node (by default it returns also legend node embedded in parent layer node (if any) unless skipNodeEmbeddedInParent is True)

Note

Parameter skipNodeEmbeddedInParent added in QGIS 2.18

Parameters:
Return type:

List[QgsLayerTreeModelLegendNode]

layerNeedsUpdate(self)
layerOriginalLegendNodes(self, nodeLayer: QgsLayerTreeLayer) List[QgsLayerTreeModelLegendNode]

Returns original (unfiltered) list of legend nodes attached to a particular layer node

Parameters:

nodeLayer (QgsLayerTreeLayer) –

Return type:

List[QgsLayerTreeModelLegendNode]

layerStyleOverrides(self) Dict[str, str]

Gets map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one

Return type:

Dict[str, str]

layerTreeNodeFont(self, nodeType: int) QFont

Gets font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode.NodeType enumeration

Parameters:

nodeType (int) –

Return type:

QFont

legendCleanup(self)
legendEmbeddedInParent(self, nodeLayer: QgsLayerTreeLayer) bool
Parameters:

nodeLayer (QgsLayerTreeLayer) –

Return type:

bool

legendFilterByScale(self) float

Returns the scale which restricts the legend nodes which are visible. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale <= 0 indicates that no scale filtering is being performed.

Return type:

float

legendFilterMapSettings(self) QgsMapSettings

Returns the current map settings used for the current legend filter (or None if none is enabled)

Return type:

QgsMapSettings

legendIconEmbeddedInParent(self, nodeLayer: QgsLayerTreeLayer) QIcon
Parameters:

nodeLayer (QgsLayerTreeLayer) –

Return type:

QIcon

legendInvalidateMapBasedData(self)
legendMapViewData(self) Tuple[float, int, float]

Gets hints about map view - to be used in legend nodes. Arguments that are not None will receive values. If there are no valid map view data (from previous call to setLegendMapViewData()), returned values are zeros.

Return type:

Tuple[float, int, float]

legendNode2index(self, legendNode: QgsLayerTreeModelLegendNode) QModelIndex

Returns index for a given legend node. If the legend node does not belong to the layer tree, the result is undefined. If the legend node is belongs to the tree but it is filtered out, invalid model index is returned.

Parameters:

legendNode (QgsLayerTreeModelLegendNode) –

Return type:

QModelIndex

legendNodeData(self, node: QgsLayerTreeModelLegendNode, role: int) Any
Parameters:
Return type:

Any

legendNodeDataChanged(self)
legendNodeEmbeddedInParent(self, nodeLayer: QgsLayerTreeLayer) QgsLayerTreeModelLegendNode

Returns legend node that may be embedded in parent (i.e. its icon will be used for layer’s icon).

Parameters:

nodeLayer (QgsLayerTreeLayer) –

Return type:

QgsLayerTreeModelLegendNode

legendNodeFlags(self, node: QgsLayerTreeModelLegendNode) Qt.ItemFlags
Parameters:

node (QgsLayerTreeModelLegendNode) –

Return type:

Qt.ItemFlags

legendNodeIndex(self, row: int, column: int, node: QgsLayerTreeModelLegendNode) QModelIndex
Parameters:
Return type:

QModelIndex

legendNodeRowCount(self, node: QgsLayerTreeModelLegendNode) int
Parameters:

node (QgsLayerTreeModelLegendNode) –

Return type:

int

legendParent(self, legendNode: QgsLayerTreeModelLegendNode) QModelIndex
Parameters:

legendNode (QgsLayerTreeModelLegendNode) –

Return type:

QModelIndex

legendRootIndex(self, row: int, column: int, nL: QgsLayerTreeLayer) QModelIndex
Parameters:
Return type:

QModelIndex

legendRootRowCount(self, nL: QgsLayerTreeLayer) int
Parameters:

nL (QgsLayerTreeLayer) –

Return type:

int

messageEmitted

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

mimeData(self, indexes: Iterable[QModelIndex]) QMimeData
Parameters:

indexes (Iterable[QModelIndex]) –

Return type:

QMimeData

mimeTypes(self) List[str]
Return type:

List[str]

node2index(self, node: QgsLayerTreeNode) QModelIndex

Returns index for a given node. If the node does not belong to the layer tree, the result is undefined

Parameters:

node (QgsLayerTreeNode) –

Return type:

QModelIndex

nodeAddedChildren(self, node: QgsLayerTreeNode, indexFrom: int, indexTo: int)
Parameters:
nodeCustomPropertyChanged(self, node: QgsLayerTreeNode, key: str)
Parameters:
nodeLayerLoaded(self)
nodeLayerWillBeUnloaded(self)
nodeNameChanged(self, node: QgsLayerTreeNode, name: str)

Updates model when node’s name has changed

Parameters:
nodeRemovedChildren(self)
nodeVisibilityChanged(self, node: QgsLayerTreeNode)
Parameters:

node (QgsLayerTreeNode) –

nodeWillAddChildren(self, node: QgsLayerTreeNode, indexFrom: int, indexTo: int)
Parameters:
nodeWillRemoveChildren(self, node: QgsLayerTreeNode, indexFrom: int, indexTo: int)
Parameters:
parent(self, child: QModelIndex) QModelIndex
Parameters:

child (QModelIndex) –

Return type:

QModelIndex

persistentIndexList(self) List[QModelIndex]
receivers(self, PYQT_SIGNAL) int
recursivelyEmitDataChanged(self, index: QModelIndex = QModelIndex())

emit dataChanged() for layer tree node items

Parameters:

index (QModelIndex = QModelIndex()) –

refreshLayerLegend(self, nodeLayer: QgsLayerTreeLayer)

Force a refresh of legend nodes of a layer node. Not necessary to call when layer’s renderer is changed as the model listens to these events.

Parameters:

nodeLayer (QgsLayerTreeLayer) –

refreshScaleBasedLayers(self, index: QModelIndex = QModelIndex(), previousScale: float = 0)

Updates layer data for scale dependent layers, should be called when map scale changes. Emits dataChanged() for all scale dependent layers.

Parameters:
  • index (QModelIndex = QModelIndex()) –

  • previousScale (float = 0) –

removeLegendFromLayer(self, nodeLayer: QgsLayerTreeLayer)
Parameters:

nodeLayer (QgsLayerTreeLayer) –

removeRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()) bool
Parameters:
  • row (int) –

  • count (int) –

  • parent (QModelIndex = QModelIndex()) –

Return type:

bool

resetInternalData(self)
rootGroup(self) QgsLayerTree

Returns pointer to the root node of the layer tree. Always a non None value.

Return type:

QgsLayerTree

rowCount(self, parent: QModelIndex = QModelIndex()) int
Parameters:

parent (QModelIndex = QModelIndex()) –

Return type:

int

scaleIconSize(standardSize: int) int

Scales an layer tree model icon size to compensate for display pixel density, making the icon size hi-dpi friendly, whilst still resulting in pixel-perfect sizes for low-dpi displays.

standardSize should be set to a standard icon size, e.g. 16, 24, 48, etc.

New in version 3.6.

Parameters:

standardSize (int) –

Return type:

int

sender(self) QObject
senderSignalIndex(self) int
setAutoCollapseLegendNodes(self, nodeCount: int)

Sets at what number of legend nodes the layer node should be collapsed. Setting -1 disables the auto-collapse (default).

Parameters:

nodeCount (int) –

setCurrentIndex(self, currentIndex: QModelIndex)

Sets index of the current item. May be used by view. Item marked as current is underlined.

Parameters:

currentIndex (QModelIndex) –

setData(self, index: QModelIndex, value: Any, role: int = Qt.EditRole) bool
Parameters:
  • index (QModelIndex) –

  • value (Any) –

  • role (int = Qt.EditRole) –

Return type:

bool

setFilterSettings(self, settings: QgsLayerTreeFilterSettings = None)

Sets the filter settings to use to filter legend nodes.

Set to None to disable legend filter.

See also

filterSettings()

New in version 3.32.

Parameters:

settings (QgsLayerTreeFilterSettings = None) –

setFlag(self, f: QgsLayerTreeModel.Flag, on: bool = True)

Enable or disable a model flag

Parameters:
setFlags(self, f: QgsLayerTreeModel.Flags | QgsLayerTreeModel.Flag)

Sets OR-ed combination of model flags

Parameters:

f (Union[QgsLayerTreeModel.Flags) –

setLayerStyleOverrides(self, overrides: Dict[str, str])

Sets map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one

Parameters:

overrides (Dict[str) –

setLayerTreeNodeFont(self, nodeType: int, font: QFont)

Sets font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode.NodeType enumeration

Parameters:
  • nodeType (int) –

  • font (QFont) –

setLegendFilter(self, settings: QgsMapSettings, useExtent: bool = True, polygon: QgsGeometry = QgsGeometry(), useExpressions: bool = True)

Filter display of legend nodes for given map settings

Parameters:
  • settings (QgsMapSettings) – Map settings. Setting None or invalid settings will disable any filter. Ownership is not changed, a copy is made

  • useExtent (bool = True) – Whether to use the extent of the map settings as a first spatial filter on legend nodes

  • polygon (QgsGeometry = QgsGeometry()) – If not empty, this polygon will be used instead of the map extent to filter legend nodes

  • useExpressions (bool = True) – Whether to use legend node filter expressions

Deprecated since version QGIS: 3.32. Use setFilterSettings() instead.

setLegendFilterByMap(self, settings: QgsMapSettings)

Force only display of legend nodes which are valid for given map settings. Setting None or invalid map settings will disable the functionality. Ownership of map settings pointer does not change, a copy is made.

Deprecated since version QGIS: 3.32. Use setFilterSettings() instead.

Parameters:

settings (QgsMapSettings) –

setLegendFilterByScale(self, scale: float)

Force only display of legend nodes which are valid for a given scale. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. Setting scale <= 0 will disable the functionality.

Parameters:

scale (float) –

setLegendMapViewData(self, mapUnitsPerPixel: float, dpi: int, scale: float)

Give the layer tree model hints about the currently associated map view so that legend nodes that use map units can be scaled correctly

Parameters:
  • mapUnitsPerPixel (float) –

  • dpi (int) –

  • scale (float) –

setRootGroup(self, newRootGroup: QgsLayerTree)

Reset the model and use a new root group node

Parameters:

newRootGroup (QgsLayerTree) –

supportedDropActions(self) Qt.DropActions
Return type:

Qt.DropActions

targetScreenProperties(self) Set[QgsScreenProperties]

Returns the target screen properties to use when generating icons.

This allows icons to be generated at an icon device pixel ratio and DPI which corresponds exactly to the view’s screen properties in which this model is used.

New in version 3.32.

Return type:

Set[QgsScreenProperties]

testFlag(self, f: QgsLayerTreeModel.Flag) bool

Check whether a flag is enabled

Parameters:

f (QgsLayerTreeModel.Flag) –

Return type:

bool

timerEvent(self, QTimerEvent)
waitForHitTestBlocking(self)

When a current hit test for visible legend items is in progress, calling this method will block until that hit test is complete.

New in version 3.32.