Class: QgsVectorLayerJoinBuffer¶
- class qgis.core.QgsVectorLayerJoinBuffer¶
Bases:
PyQt5.QtCore.QObject
,QgsFeatureSink
Manages joined fields for a vector layer.
Methods
Adds a list of features in joined layers.
Joins another vector layer to this layer
Changes attribute value in joined layers.
Changes attributes' values in joined layers.
Create a copy of the join buffer
Quick way to test if there is any join at all
Calls
cacheJoinLayer()
for all vector joinsDeletes a feature from joined layers.
Deletes a list of features from joined layers.
Returns
True
if the join information is about auxiliary layer,False
otherwiseFinds the vector join for a layer field index.
Returns a vector of indices for use in join based on field names from the layer
Returns the joined feature corresponding to the feature.
Find out what is the first index of the join within fields.
Returns joins where the field of a target layer is considered as an id.
Reads joins from project file.
Removes a vector layer join
Resolves layer IDs of joined layers using given project's available layers
Returns the targeted feature corresponding to the joined feature.
Updates field map with joined attributes
- rtype:
List[QgsVectorLayerJoinInfo]
Saves mVectorJoins to xml under the layer node
Signals
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
- addFeatures(self, features: Iterable[QgsFeature], flags: QgsFeatureSink.Flags | QgsFeatureSink.Flag = QgsFeatureSink.Flags()) 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 (Iterable[QgsFeature]) – The list of features added in the target layer
flags (Union[QgsFeatureSink.Flags) – Unused parameter
- Return type:
bool
- Returns:
False
if an error happened,True
otherwise
- addJoin(self, joinInfo: QgsVectorLayerJoinInfo) bool ¶
Joins another vector layer to this layer
- Parameters:
joinInfo (QgsVectorLayerJoinInfo) – join object containing join layer id, target and source field
- Return type:
bool
- 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 (int) – The feature id
field (int) – The field to update
newValue (Any) – The new value of the attribute
oldValue (Any = None) – The old value of the attribute
- Return type:
bool
- Returns:
False
if an error happened,True
otherwise
- 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 (int) – The feature id
newValues (Dict[int) – The new values for attributes
oldValues (Dict[int) – The old values for attributes
- Return type:
bool
- Returns:
False
if an error happened,True
otherwise
- childEvent(self, QChildEvent)¶
- clone(self) QgsVectorLayerJoinBuffer ¶
Create a copy of the join buffer
- Return type:
- connectNotify(self, QMetaMethod)¶
- containsJoins(self) bool ¶
Quick way to test if there is any join at all
- Return type:
bool
- createJoinCaches(self)¶
Calls
cacheJoinLayer()
for all vector joins
- customEvent(self, QEvent)¶
- deleteFeature(self, fid: int, context: QgsVectorLayer.DeleteContext = None) bool ¶
Deletes a feature from joined layers. The feature id given in parameter is the one coming from the target layer.
- Parameters:
fid (int) – The feature id from the target layer to delete
context (QgsVectorLayer.DeleteContext = None) – The chain of features which will be deleted for feedback and to avoid infinite recursions. Can be
None
.
- Return type:
bool
- Returns:
False
if an error happened,True
otherwise
- deleteFeatures(self, fids: object, context: QgsVectorLayer.DeleteContext = None) bool ¶
Deletes a list of features from joined layers. Feature ids given in a parameter are those coming from the target layer.
- Parameters:
fids (object) – Feature ids from the target layer to delete
context (QgsVectorLayer.DeleteContext = None) – The chain of features who will be deleted for feedback and to avoid infinite recursions. Can be
None
.
- Return type:
bool
- Returns:
False
if an error happened,True
otherwise
- disconnectNotify(self, QMetaMethod)¶
- isAuxiliaryJoin(self, info: QgsVectorLayerJoinInfo) bool ¶
Returns
True
if the join information is about auxiliary layer,False
otherwise- Parameters:
info (QgsVectorLayerJoinInfo) – The join information
- Return type:
bool
- Returns:
True
if the join information is about auxiliary layer,False
otherwise
- isSignalConnected(self, QMetaMethod) bool ¶
- joinForFieldIndex(self, index: int, fields: QgsFields) Tuple[QgsVectorLayerJoinInfo, int] ¶
Finds the vector join for a layer field index.
- Parameters:
index (int) – this layers attribute index
fields (QgsFields) – fields of the vector layer (including joined fields)
- Return type:
Tuple[
QgsVectorLayerJoinInfo
, int]- Returns:
the vector layer join info
sourceFieldIndex: Output: field’s index in source layer
- joinSubsetIndices(joinLayer: QgsVectorLayer, joinFieldsSubset: Iterable[str]) List[int] ¶
Returns a vector of indices for use in join based on field names from the layer
joinSubsetIndices(joinLayerFields:
QgsFields
, joinFieldsSubset: Iterable[str]) -> List[int] Returns a vector of indices for use in join based on field names from the join layer’s fields.Added in version 3.20.
- Parameters:
joinLayer (QgsVectorLayer)
joinFieldsSubset (Iterable[str])
- Return type:
List[int]
- joinedFeatureOf(self, info: QgsVectorLayerJoinInfo, feature: QgsFeature) QgsFeature ¶
Returns the joined feature corresponding to the feature.
- Parameters:
info (QgsVectorLayerJoinInfo) – the vector join information
feature (QgsFeature) – the feature of the target layer
- Return type:
- joinedFieldsChanged¶
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
- 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
- Parameters:
info (QgsVectorLayerJoinInfo)
fields (QgsFields)
- Return type:
int
- joinsWhereFieldIsId(self, field: QgsField) List[QgsVectorLayerJoinInfo] ¶
Returns joins where the field of a target layer is considered as an id.
- Parameters:
field (QgsField) – the field of a target layer
- Return type:
List[QgsVectorLayerJoinInfo]
- Returns:
a list of vector joins
- readXml(self, layer_node: QDomNode)¶
Reads joins from project file. Does not resolve layer IDs to layers - call
resolveReferences()
afterwards- Parameters:
layer_node (QDomNode)
- receivers(self, PYQT_SIGNAL) int ¶
- removeJoin(self, joinLayerId: str) bool ¶
Removes a vector layer join
- Return type:
bool
- Returns:
True
if join was found and successfully removed- Parameters:
joinLayerId (str)
- resolveReferences(self, project: QgsProject)¶
Resolves layer IDs of joined layers using given project’s available layers
- Parameters:
project (QgsProject)
- sender(self) QObject ¶
- senderSignalIndex(self) int ¶
- targetedFeatureOf(self, info: QgsVectorLayerJoinInfo, feature: QgsFeature) QgsFeature ¶
Returns the targeted feature corresponding to the joined feature.
- Parameters:
info (QgsVectorLayerJoinInfo) – the vector join information
feature (QgsFeature) – the feature of the joined layer
- Return type:
- timerEvent(self, QTimerEvent)¶
- updateFields(self, fields: QgsFields)¶
Updates field map with joined attributes
- Parameters:
fields (QgsFields) – map to append joined attributes
- vectorJoins(self) List[QgsVectorLayerJoinInfo] ¶
- Return type:
List[QgsVectorLayerJoinInfo]
- writeXml(self, layer_node: QDomNode, document: QDomDocument)¶
Saves mVectorJoins to xml under the layer node
- Parameters:
layer_node (QDomNode)
document (QDomDocument)