Class: QgsExpressionContextUtils

class qgis.core.QgsExpressionContextUtils

Bases: sip.wrapper

Contains utilities for working with QgsExpressionContext objects, including methods for creating scopes for specific uses (e.g., project scopes, layer scopes).

New in version 2.12: Methods

atlasScope Creates a new scope which contains variables and functions relating to a QgsLayoutAtlas.
createFeatureBasedContext Helper function for creating an expression context which contains just a feature and fields collection.
formScope Creates a new scope which contains functions and variables from the current attribute form/table feature.
globalProjectLayerScopes Creates a list of three scopes: global, layer’s project and layer.
globalScope Creates a new scope which contains variables and functions relating to the global QGIS context.
layerScope Creates a new scope which contains variables and functions relating to a QgsMapLayer.
layoutItemScope Creates a new scope which contains variables and functions relating to a QgsLayoutItem.
layoutScope Creates a new scope which contains variables and functions relating to a QgsLayout layout.
mapSettingsScope Creates a new scope which contains variables and functions relating to a QgsMapSettings object.
mapToolCaptureScope Sets the expression context variables which are available for expressions triggered by a map tool capture like add feature.
notificationScope Creates a new scope which contains variables and functions relating to provider notifications
processingAlgorithmScope Creates a new scope which contains variables and functions relating to a processing algorithm, when used with the specified parameters and context.
projectScope Creates a new scope which contains variables and functions relating to a QGIS project.
registerContextFunctions Registers all known core functions provided by QgsExpressionContextScope objects.
removeGlobalVariable Remove a global context variable.
removeProjectVariable Remove project context variable.
setGlobalVariable Sets a global context variable.
setGlobalVariables Sets all global context variables.
setLayerVariable Sets a layer context variable.
setLayerVariables Sets all layer context variables.
setLayoutItemVariable Sets a layout item context variable, with the given name and value.
setLayoutItemVariables Sets all layout item context variables for an item.
setLayoutVariable Sets a layout context variable.
setLayoutVariables Sets all layout context variables.
setProjectVariable Sets a project context variable.
setProjectVariables Sets all project context variables.
updateSymbolScope Updates a symbol scope related to a QgsSymbol to an expression context.

Signals

Attributes

atlasScope(atlas: QgsLayoutAtlas) → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to a QgsLayoutAtlas. For instance, current page name and number.

Parameters:atlas – source atlas. If null, a set of default atlas variables will be added to the scope.
createFeatureBasedContext(feature: QgsFeature, fields: QgsFields) → QgsExpressionContext

Helper function for creating an expression context which contains just a feature and fields collection. Generally this method should not be used as the created context does not include standard scopes such as the global and project scopes.

formScope(formFeature: QgsFeature = QgsFeature(), formMode: str = '') → QgsExpressionContextScope

Creates a new scope which contains functions and variables from the current attribute form/table feature. The variables and values in this scope will reflect the current state of the form/row being edited. The formMode (SingleEditMode etc.) is passed as text

New in version 3.2.

globalProjectLayerScopes(layer: QgsMapLayer) → List[QgsExpressionContextScope]

Creates a list of three scopes: global, layer’s project and layer.

New in version 3.0.

globalScope() → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to the global QGIS context. For instance, QGIS version numbers and variables specified through QGIS options.

layerScope(layer: QgsMapLayer) → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to a QgsMapLayer. For instance, layer name, id and fields.

layoutItemScope(item: QgsLayoutItem) → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to a QgsLayoutItem. For instance, item size and position.

New in version 3.0.

layoutScope(layout: QgsLayout) → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to a QgsLayout layout. For instance, number of pages and page sizes.

New in version 3.0.

mapSettingsScope(mapSettings: QgsMapSettings) → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to a QgsMapSettings object. For instance, map scale and rotation.

mapToolCaptureScope(matches: Iterable[QgsPointLocator.Match]) → QgsExpressionContextScope

Sets the expression context variables which are available for expressions triggered by a map tool capture like add feature.

New in version 3.0.

notificationScope(message: str = '') → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to provider notifications

Parameters:message – the notification message
processingAlgorithmScope(algorithm: QgsProcessingAlgorithm, parameters: Dict[str, Any], context: QgsProcessingContext) → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to a processing algorithm, when used with the specified parameters and context. For instance, algorithm name and parameter functions.

projectScope(project: QgsProject) → QgsExpressionContextScope

Creates a new scope which contains variables and functions relating to a QGIS project. For instance, project path and title, and variables specified through the project properties.

Parameters:project – What project to use
registerContextFunctions()

Registers all known core functions provided by QgsExpressionContextScope objects.

removeGlobalVariable(name: str)

Remove a global context variable.

Parameters:name – variable name

See also

globalScope()

removeProjectVariable(project: QgsProject, name: str)

Remove project context variable.

Parameters:
  • project – Project to apply changes to
  • name – variable name

See also

projectScope()

setGlobalVariable(name: str, value: Any)

Sets a global context variable. This variable will be contained within scopes retrieved via globalScope().

Parameters:
  • name – variable name
  • value – variable value

See also

globalScope()

setGlobalVariables(variables: Dict[str, Any])

Sets all global context variables. Existing global variables will be removed and replaced with the variables specified.

Parameters:variables – new set of global variables

See also

globalScope()

setLayerVariable(layer: QgsMapLayer, name: str, value: Any)

Sets a layer context variable. This variable will be contained within scopes retrieved via layerScope().

Parameters:
  • layer – map layer
  • name – variable name
  • value – variable value

See also

layerScope()

setLayerVariables(layer: QgsMapLayer, variables: Dict[str, Any])

Sets all layer context variables. Existing layer variables will be removed and replaced with the variables specified.

Parameters:
  • layer – map layer
  • variables – new set of layer variables

See also

layerScope()

setLayoutItemVariable(item: QgsLayoutItem, name: str, value: Any)

Sets a layout item context variable, with the given name and value. This variable will be contained within scopes retrieved via layoutItemScope().

New in version 3.0.

setLayoutItemVariables(item: QgsLayoutItem, variables: Dict[str, Any])

Sets all layout item context variables for an item. Existing variables will be removed and replaced with the variables specified.

New in version 3.0.

setLayoutVariable(layout: QgsLayout, name: str, value: Any)

Sets a layout context variable. This variable will be contained within scopes retrieved via layoutScope().

Parameters:
  • layout – target layout
  • name – variable name
  • value – variable value

See also

layoutScope()

New in version 3.0.

setLayoutVariables(layout: QgsLayout, variables: Dict[str, Any])

Sets all layout context variables. Existing layout variables will be removed and replaced with the variables specified.

Parameters:
  • layout – target layout
  • variables – new set of layer variables

See also

layoutScope()

New in version 3.0.

setProjectVariable(project: QgsProject, name: str, value: Any)

Sets a project context variable. This variable will be contained within scopes retrieved via projectScope().

Parameters:
  • project – Project to apply changes to
  • name – variable name
  • value – variable value

See also

projectScope()

setProjectVariables(project: QgsProject, variables: Dict[str, Any])

Sets all project context variables. Existing project variables will be removed and replaced with the variables specified.

Parameters:
  • project – Project to apply changes to
  • variables – new set of project variables

See also

projectScope()

updateSymbolScope(symbol: QgsSymbol, symbolScope: QgsExpressionContextScope = None) → QgsExpressionContextScope

Updates a symbol scope related to a QgsSymbol to an expression context.

Parameters:
  • symbol – symbol to extract properties from
  • symbolScope – pointer to an existing scope to update

New in version 2.14.