Class: QgsLayerTreeView

class qgis.gui.QgsLayerTreeView(parent: QWidget = None)

Bases: PyQt5.QtWidgets.QTreeView

Constructor for QgsLayerTreeView

The QgsLayerTreeView class extends QTreeView and provides some additional functionality when working with a layer tree.

The view updates expanded state of layer tree nodes and also listens to changes to expanded states in the layer tree.

The view keeps track of the current layer and emits a signal when the current layer has changed.

Allows the client to specify a context menu provider with custom actions. Also it comes with a set of default actions that can be used when building context menu.

Methods

actionEvent

addIndicator

Adds an indicator to the given layer tree node.

changeEvent

childEvent

closeEditor

closeEvent

collapseAllNodes

Enhancement of QTreeView.collapseAll() that also records expanded state in layer tree nodes

columnCountChanged

columnMoved

columnResized

commitData

connectNotify

contextMenuEvent

param event

create

currentChanged

currentGroupNode

Gets current group node.

currentLayer

Returns the currently selected layer, or None if no layers is selected.

currentLegendNode

Gets current legend node.

currentNode

Gets current node.

customEvent

defaultActions

Gets access to the default actions that may be used with the tree view

destroy

dirtyRegionOffset

disconnectNotify

dragEnterEvent

dragLeaveEvent

dragMoveEvent

drawBranches

drawFrame

drawRow

drawTree

dropEvent

param event

dropIndicatorPosition

edit

edit(self, QModelIndex, QAbstractItemView.EditTrigger, QEvent) -> bool

editorDestroyed

enterEvent

event

eventFilter

executeDelayedItemsLayout

expandAllNodes

Enhancement of QTreeView.expandAll() that also records expanded state in layer tree nodes

focusInEvent

focusNextChild

focusNextPrevChild

focusOutEvent

focusPreviousChild

hideEvent

horizontalOffset

horizontalScrollbarAction

horizontalScrollbarValueChanged

indexRowSizeHint

indicators

Returns list of indicators associated with a particular layer tree node.

initPainter

initStyleOption

inputMethodEvent

isIndexHidden

isSignalConnected

keyPressEvent

param event

keyReleaseEvent

layerForIndex

param index

layerMarkWidth

Returns width of contextual menu mark, at right of layer node items.

layerTreeModel

Gets access to the model casted to QgsLayerTreeModel

leaveEvent

menuProvider

Returns pointer to the context menu provider.

metric

modelRowsInserted

param index

modelRowsRemoved

mouseDoubleClickEvent

mouseMoveEvent

mousePressEvent

mouseReleaseEvent

param event

moveCursor

moveEvent

nativeEvent

onCurrentChanged

onExpandedChanged

param node

onModelReset

paintEvent

receivers

reexpand

refreshLayerSymbology

Force refresh of layer symbology.

removeIndicator

Removes a previously added indicator to a layer tree node.

resizeEvent

param event

rowHeight

rowsAboutToBeRemoved

rowsInserted

rowsRemoved

scheduleDelayedItemsLayout

scrollContentsBy

scrollDirtyRegion

selectedIndexes

selectedLayerNodes

Returns list of selected nodes filtered to just layer nodes

selectedLayers

Gets list of selected layers

selectedLayersRecursive

Gets list of selected layers, including those that are not directly selected, but their ancestor groups is selected.

selectedNodes

Returns list of selected nodes

selectionChanged

selectionCommand

sender

senderSignalIndex

setCurrentLayer

Sets the currently selected layer.

setDirtyRegion

setLayerMarkWidth

Set width of contextual menu mark, at right of layer node items.

setLayerVisible

Convenience methods which sets the visible state of the specified map layer.

setMenuProvider

Sets provider for context menu.

setMessageBar

Set the message bar to display messages from the layer tree

setModel

Overridden setModel() from base class.

setSelection

setState

setViewportMargins

setViewportMargins(self, QMargins)

sharedPainter

showEvent

sizeHintForColumn

startDrag

state

tabletEvent

timerEvent

updateEditorData

updateEditorGeometries

updateExpandedStateFromNode

param node

updateExpandedStateToNode

param index

updateGeometries

updateMicroFocus

verticalOffset

verticalScrollbarAction

verticalScrollbarValueChanged

viewOptions

viewportEvent

viewportMargins

viewportSizeHint

visualRegionForSelection

wheelEvent

Signals

currentLayerChanged

Emitted when a current layer is changed [signal]

actionEvent(self, QActionEvent)
addIndicator(self, node: QgsLayerTreeNode, indicator: QgsLayerTreeViewIndicator)

Adds an indicator to the given layer tree node. Indicators are icons shown next to layer/group names in the layer tree view. They can be used to show extra information with tree nodes and they allow user interaction.

Does not take ownership of the indicator. One indicator object may be used for multiple layer tree nodes.

See also

indicators()

New in version 3.2.

Parameters
changeEvent(self, QEvent)
childEvent(self, QChildEvent)
closeEditor(self, QWidget, QAbstractItemDelegate.EndEditHint)
closeEvent(self, QCloseEvent)
collapseAllNodes(self)

Enhancement of QTreeView.collapseAll() that also records expanded state in layer tree nodes

New in version 2.18.

QgsLayerTreeView.columnCountChanged(self, int, int)
columnMoved(self)
QgsLayerTreeView.columnResized(self, int, int, int)
commitData(self, QWidget)
connectNotify(self, QMetaMethod)
contextMenuEvent(self, event: QContextMenuEvent)
Parameters

event (QContextMenuEvent) –

create(self, window: sip.voidptr = 0, initializeWindow: bool = True, destroyOldWindow: bool = True)
QgsLayerTreeView.currentChanged(self, QModelIndex, QModelIndex)
currentGroupNode(self)QgsLayerTreeGroup

Gets current group node. If a layer is current node, the function will return parent group. May be None.

Return type

QgsLayerTreeGroup

currentLayer(self)QgsMapLayer

Returns the currently selected layer, or None if no layers is selected.

Return type

QgsMapLayer

currentLayerChanged

Emitted when a current layer is changed [signal]

Parameters

layer (QgsMapLayer) –

currentLegendNode(self)QgsLayerTreeModelLegendNode

Gets current legend node. May be None if current node is not a legend node.

New in version 2.14.

Return type

QgsLayerTreeModelLegendNode

currentNode(self)QgsLayerTreeNode

Gets current node. May be None

Return type

QgsLayerTreeNode

customEvent(self, QEvent)
defaultActions(self)QgsLayerTreeViewDefaultActions

Gets access to the default actions that may be used with the tree view

Return type

QgsLayerTreeViewDefaultActions

destroy(self, destroyWindow: bool = True, destroySubWindows: bool = True)
dirtyRegionOffset(self)QPoint
disconnectNotify(self, QMetaMethod)
dragEnterEvent(self, QDragEnterEvent)
dragLeaveEvent(self, QDragLeaveEvent)
dragMoveEvent(self, QDragMoveEvent)
drawBranches(self, QPainter, QRect, QModelIndex)
drawFrame(self, QPainter)
drawRow(self, QPainter, QStyleOptionViewItem, QModelIndex)
drawTree(self, QPainter, QRegion)
dropEvent(self, event: QDropEvent)
Parameters

event (QDropEvent) –

dropIndicatorPosition(self)QAbstractItemView.DropIndicatorPosition
edit(self, QModelIndex)

edit(self, QModelIndex, QAbstractItemView.EditTrigger, QEvent) -> bool

editorDestroyed(self, QObject)
enterEvent(self, QEvent)
event(self, QEvent)bool
eventFilter(self, QObject, QEvent)bool
executeDelayedItemsLayout(self)
expandAllNodes(self)

Enhancement of QTreeView.expandAll() that also records expanded state in layer tree nodes

New in version 2.18.

focusInEvent(self, QFocusEvent)
focusNextChild(self)bool
focusNextPrevChild(self, bool)bool
focusOutEvent(self, QFocusEvent)
focusPreviousChild(self)bool
hideEvent(self, QHideEvent)
horizontalOffset(self)int
horizontalScrollbarAction(self, int)
horizontalScrollbarValueChanged(self, int)
indexRowSizeHint(self, QModelIndex)int
indicators(self, node: QgsLayerTreeNode)List[QgsLayerTreeViewIndicator]

Returns list of indicators associated with a particular layer tree node.

See also

addIndicator()

New in version 3.2.

Parameters

node (QgsLayerTreeNode) –

Return type

List[QgsLayerTreeViewIndicator]

initPainter(self, QPainter)
initStyleOption(self, QStyleOptionFrame)
inputMethodEvent(self, QInputMethodEvent)
isIndexHidden(self, QModelIndex)bool
isSignalConnected(self, QMetaMethod)bool
keyPressEvent(self, event: QKeyEvent)
Parameters

event (QKeyEvent) –

keyReleaseEvent(self, QKeyEvent)
layerForIndex(self, index: QModelIndex)QgsMapLayer
Parameters

index (QModelIndex) –

Return type

QgsMapLayer

layerMarkWidth(self)int

Returns width of contextual menu mark, at right of layer node items.

New in version 3.8.

Return type

int

layerTreeModel(self)QgsLayerTreeModel

Gets access to the model casted to QgsLayerTreeModel

Return type

QgsLayerTreeModel

leaveEvent(self, QEvent)
menuProvider(self)QgsLayerTreeViewMenuProvider

Returns pointer to the context menu provider. May be None

Return type

QgsLayerTreeViewMenuProvider

metric(self, QPaintDevice.PaintDeviceMetric)int
modelRowsInserted(self, index: QModelIndex, start: int, end: int)
Parameters
  • index (QModelIndex) –

  • start (int) –

  • end (int) –

modelRowsRemoved(self)
mouseDoubleClickEvent(self, QMouseEvent)
mouseMoveEvent(self, QMouseEvent)
mousePressEvent(self, QMouseEvent)
mouseReleaseEvent(self, event: QMouseEvent)
Parameters

event (QMouseEvent) –

moveCursor(self, QAbstractItemView.CursorAction, Union[Qt.KeyboardModifiers, Qt.KeyboardModifier])QModelIndex
moveEvent(self, QMoveEvent)
nativeEvent(self, Union[QByteArray, bytes, bytearray], sip.voidptr)Tuple[bool, int]
onCurrentChanged(self)
onExpandedChanged(self, node: QgsLayerTreeNode, expanded: bool)
Parameters
onModelReset(self)
paintEvent(self, QPaintEvent)
receivers(self, PYQT_SIGNAL)int
reexpand(self)
refreshLayerSymbology(self, layerId: str)

Force refresh of layer symbology. Normally not needed as the changes of layer’s renderer are monitored by the model

Parameters

layerId (str) –

removeIndicator(self, node: QgsLayerTreeNode, indicator: QgsLayerTreeViewIndicator)

Removes a previously added indicator to a layer tree node. Does not delete the indicator.

See also

addIndicator()

See also

indicators()

New in version 3.2.

Parameters
resizeEvent(self, event: QResizeEvent)
Parameters

event (QResizeEvent) –

rowHeight(self, QModelIndex)int
QgsLayerTreeView.rowsAboutToBeRemoved(self, QModelIndex, int, int)
QgsLayerTreeView.rowsInserted(self, QModelIndex, int, int)
QgsLayerTreeView.rowsRemoved(self, QModelIndex, int, int)
scheduleDelayedItemsLayout(self)
QgsLayerTreeView.scrollContentsBy(self, int, int)
QgsLayerTreeView.scrollDirtyRegion(self, int, int)
selectedIndexes(self)List[QModelIndex]
selectedLayerNodes(self)List[QgsLayerTreeLayer]

Returns list of selected nodes filtered to just layer nodes

Return type

List[QgsLayerTreeLayer]

selectedLayers(self)List[QgsMapLayer]

Gets list of selected layers

Return type

List[QgsMapLayer]

selectedLayersRecursive(self)List[QgsMapLayer]

Gets list of selected layers, including those that are not directly selected, but their ancestor groups is selected. If we have a group with two layers L1, L2 and just the group node is selected, this method returns L1 and L2, while selectedLayers() returns an empty list.

New in version 3.4.

Return type

List[QgsMapLayer]

selectedNodes(self, skipInternal: bool = False)List[QgsLayerTreeNode]

Returns list of selected nodes

Parameters

skipInternal (bool = False) – If True, will ignore nodes which have an ancestor in the selection

Return type

List[QgsLayerTreeNode]

QgsLayerTreeView.selectionChanged(self, QItemSelection, QItemSelection)
selectionCommand(self, QModelIndex, event: QEvent = None)QItemSelectionModel.SelectionFlags
sender(self)QObject
senderSignalIndex(self)int
setCurrentLayer(self, layer: QgsMapLayer)

Sets the currently selected layer.

If layer is None then all layers will be deselected.

See also

currentLayer()

Parameters

layer (QgsMapLayer) –

setDirtyRegion(self, QRegion)
setLayerMarkWidth(self, width: int)

Set width of contextual menu mark, at right of layer node items.

See also

layerMarkWidth()

New in version 3.8.

Parameters

width (int) –

setLayerVisible(self, layer: QgsMapLayer, visible: bool)

Convenience methods which sets the visible state of the specified map layer.

See also

QgsLayerTreeNode.setItemVisibilityChecked()

New in version 3.10.

Parameters
setMenuProvider(self, menuProvider: QgsLayerTreeViewMenuProvider)

Sets provider for context menu. Takes ownership of the instance

Parameters

menuProvider (QgsLayerTreeViewMenuProvider) –

setMessageBar(self, messageBar: QgsMessageBar)

Set the message bar to display messages from the layer tree

New in version 3.14.

Parameters

messageBar (QgsMessageBar) –

setModel(self, model: QAbstractItemModel)

Overridden setModel() from base class. Only QgsLayerTreeModel is an acceptable model.

Parameters

model (QAbstractItemModel) –

setSelection(self, QRect, Union[QItemSelectionModel.SelectionFlags, QItemSelectionModel.SelectionFlag])
setState(self, QAbstractItemView.State)
QgsLayerTreeView.setViewportMargins(self, int, int, int, int)

setViewportMargins(self, QMargins)

sharedPainter(self)QPainter
showEvent(self, QShowEvent)
sizeHintForColumn(self, int)int
startDrag(self, Union[Qt.DropActions, Qt.DropAction])
state(self)QAbstractItemView.State
tabletEvent(self, QTabletEvent)
timerEvent(self, QTimerEvent)
updateEditorData(self)
updateEditorGeometries(self)
updateExpandedStateFromNode(self, node: QgsLayerTreeNode)
Parameters

node (QgsLayerTreeNode) –

updateExpandedStateToNode(self, index: QModelIndex)
Parameters

index (QModelIndex) –

updateGeometries(self)
updateMicroFocus(self)
verticalOffset(self)int
verticalScrollbarAction(self, int)
verticalScrollbarValueChanged(self, int)
viewOptions(self)QStyleOptionViewItem
viewportEvent(self, QEvent)bool
viewportMargins(self)QMargins
viewportSizeHint(self)QSize
visualRegionForSelection(self, QItemSelection)QRegion
wheelEvent(self, QWheelEvent)