Subgroup: Vector

Class: QgsVectorLayerJoinBuffer

class qgis.core.QgsVectorLayerJoinBuffer

Bases: PyQt5.QtCore.QObject, qgis._core.QgsFeatureSink

Manages joined fields for a vector layer*

Methods

addFeatures Adds a list of features in joined layers.
addJoin Joins another vector layer to this layer
changeAttributeValue Changes attribute value in joined layers.
changeAttributeValues Changes attributes’ values in joined layers.
childEvent
clone Create a copy of the join buffer
connectNotify
containsJoins Quick way to test if there is any join at all
createJoinCaches Calls cacheJoinLayer() for all vector joins
customEvent
deleteFeature Deletes a feature from joined layers.
deleteFeatures Deletes a list of features from joined layers.
disconnectNotify
isAuxiliaryJoin Returns true if the join information is about auxiliary layer, false otherwise
isSignalConnected
joinForFieldIndex Finds the vector join for a layer field index.
joinSubsetIndices Return a vector of indices for use in join based on field names from the layer
joinedFeatureOf Returns the joined feature corresponding to the feature.
joinedFieldsOffset Find out what is the first index of the join within fields.
joinsWhereFieldIsId Returns joins where the field of a target layer is considered as an id.
readXml Reads joins from project file.
receivers
removeJoin Removes a vector layer join
resolveReferences Resolves layer IDs of joined layers using given project’s available layers
sender
senderSignalIndex
targetedFeatureOf Returns the targeted feature corresponding to the joined feature.
timerEvent
updateFields Updates field map with joined attributes
vectorJoins
writeXml Saves mVectorJoins to xml under the layer node

Signals

joinedFieldsChanged Emitted whenever the list of joined fields changes (e.

Attributes

addFeatures(self, features: object, flags: Union[QgsFeatureSink.Flags, QgsFeatureSink.Flag] = 0) → bool

Adds a list of features in joined layers. Features given in parameter are those added in target layer. If a corresponding joined feature yet exists in a joined layer, then this feature is just updated. Note that if a corresponding joined feature has only empty fields, then it’s not created nor added.

Parameters:
  • features – The list of features added in the target layer
  • flags – Unused parameter
Returns:

false if an error happened, true otherwise

New in version 3.0.

addJoin(self, joinInfo: QgsVectorLayerJoinInfo) → bool

Joins another vector layer to this layer

Parameters:joinInfo – join object containing join layer id, target and source field
Returns:(since 2.6) whether the join was successfully added *
changeAttributeValue(self, fid: int, field: int, newValue: Any, oldValue: Any = None) → bool

Changes attribute value in joined layers. The feature id given in parameter is the one added in target layer. If the corresponding joined feature does not exist in a joined layer, then it’s automatically created if its fields are not empty.

Parameters:
  • fid – The feature id
  • field – The field to update
  • newValue – The new value of the attribute
  • oldValue – The old value of the attribute
Returns:

false if an error happened, true otherwise

New in version 3.0.

changeAttributeValues(self, fid: int, newValues: Dict[int, Any], oldValues: Dict[int, Any] = {}) → bool

Changes attributes’ values in joined layers. The feature id given in parameter is the one added in target layer. If the corresponding joined feature does not exist in a joined layer, then it’s automatically created if its fields are not empty.

Parameters:
  • fid – The feature id
  • newValues – The new values for attributes
  • oldValues – The old values for attributes
Returns:

false if an error happened, true otherwise

New in version 3.0.

childEvent()
clone(self) → QgsVectorLayerJoinBuffer

Create a copy of the join buffer

New in version 2.6.

connectNotify()
containsJoins(self) → bool

Quick way to test if there is any join at all

createJoinCaches(self)

Calls cacheJoinLayer() for all vector joins

customEvent()
deleteFeature(self, fid: int) → bool

Deletes a feature from joined layers. The feature id given in parameter is the one coming from the target layer.

Parameters:fid – The feature id from the target layer to delete
Returns:false if an error happened, true otherwise

New in version 3.0.

deleteFeatures(self, fids: object) → bool

Deletes a list of features from joined layers. Feature ids given in aprameter are those coming from the target layer.

Parameters:fids – Feature ids from the target layer to delete
Returns:false if an error happened, true otherwise

New in version 3.0.

disconnectNotify()
isAuxiliaryJoin(self, info: QgsVectorLayerJoinInfo) → bool

Returns true if the join information is about auxiliary layer, false otherwise

Parameters:info – The join information
Returns:true if the join information is about auxiliary layer, false otherwise

New in version 3.0.

isSignalConnected()
joinForFieldIndex(self, index: int, fields: QgsFields) → Tuple[QgsVectorLayerJoinInfo, int]

Finds the vector join for a layer field index.

Parameters:
  • index – this layers attribute index
  • fields – fields of the vector layer (including joined fields)
  • sourceFieldIndex – Output: field’s index in source layer *
joinSubsetIndices(joinLayer: QgsVectorLayer, joinFieldsSubset: Iterable[str]) → List[int]

Return a vector of indices for use in join based on field names from the layer

New in version 2.6.

joinedFeatureOf(self, info: QgsVectorLayerJoinInfo, feature: QgsFeature) → QgsFeature

Returns the joined feature corresponding to the feature.

Parameters:
  • info – the vector join information
  • feature – the feature of the target layer

New in version 3.0.

joinedFieldsChanged

Emitted whenever the list of joined fields changes (e.g. added join or joined layer’s fields change)

New in version 2.6: [signal]

joinedFieldsOffset(self, info: QgsVectorLayerJoinInfo, fields: QgsFields) → int

Find out what is the first index of the join within fields. Returns -1 if join is not present

New in version 2.6.

joinsWhereFieldIsId(self, field: QgsField) → object

Returns joins where the field of a target layer is considered as an id.

Parameters:field – the field of a target layer
Returns:a list of vector joins

New in version 3.0.

readXml(self, layer_node: QDomNode)

Reads joins from project file. Does not resolve layer IDs to layers - call resolveReferences() afterwards

receivers()
removeJoin(self, joinLayerId: str) → bool

Removes a vector layer join

Returns:true if join was found and successfully removed *
resolveReferences(self, project: QgsProject)

Resolves layer IDs of joined layers using given project’s available layers

New in version 3.0.

sender()
senderSignalIndex()
targetedFeatureOf(self, info: QgsVectorLayerJoinInfo, feature: QgsFeature) → QgsFeature

Returns the targeted feature corresponding to the joined feature.

Parameters:
  • info – the vector join information
  • feature – the feature of the joined layer

New in version 3.0.

timerEvent()
updateFields(self, fields: QgsFields)

Updates field map with joined attributes

Parameters:fields – map to append joined attributes
vectorJoins(self) → object
writeXml(self, layer_node: QDomNode, document: QDomDocument)

Saves mVectorJoins to xml under the layer node