Class: QgsVectorLayer

class qgis.core.QgsVectorLayer(path: str = '', baseName: str = '', providerLib: str = '', options: QgsVectorLayer.LayerOptions = QgsVectorLayer.LayerOptions())

Bases: QgsMapLayer, QgsExpressionContextGenerator, QgsExpressionContextScopeGenerator, QgsFeatureSink, QgsFeatureSource

Constructor - creates a vector layer

The QgsVectorLayer is constructed by instantiating a data provider. The provider interprets the supplied path (url) of the data source to connect to and access the data.

Parameters
  • path (str = '') – The path or url of the parameter. Typically this encodes parameters used by the data provider as url query items.

  • baseName (str = '') – The name used to represent the layer in the legend

  • providerLib (str = '') – The name of the data provider, e.g., “memory”, “postgres”

  • options (QgsVectorLayer.LayerOptions = QgsVectorLayer.LayerOptions()) – layer load options

Represents a vector layer which manages a vector based data sets.

The QgsVectorLayer is instantiated by specifying the name of a data provider, such as postgres or wfs, and url defining the specific data set to connect to. The vector layer constructor in turn instantiates a QgsVectorDataProvider subclass corresponding to the provider type, and passes it the url. The data provider connects to the data source.

The QgsVectorLayer provides a common interface to the different data types. It also manages editing transactions.

Sample usage of the QgsVectorLayer class:

uri = "point?crs=epsg:4326&field=id:integer"
scratchLayer = QgsVectorLayer(uri, "Scratch point layer",  "memory")

The main data providers supported by QGIS are listed below.

The memory data provider is used to construct in memory data, for example scratch data or data generated from spatial operations such as contouring. There is no inherent persistent storage of the data. The data source uri is constructed. The url specifies the geometry type (“point”, “linestring”, “polygon”, “multipoint”,”multilinestring”,”multipolygon”), optionally followed by url parameters as follows:

  • crs=definition

Defines the coordinate reference system to use for the layer. definition is any string accepted by QgsCoordinateReferenceSystem.createFromString()

  • index=yes

Specifies that the layer will be constructed with a spatial index

  • field=name:type(length,precision)

Defines an attribute of the layer. Multiple field parameters can be added to the data provider definition. type is one of “integer”, “double”, “string”.

An example url is “Point?crs=epsg:4326&field=id:integer&field=name:string(20)&index=yes”

Since QGIS 3.4 when closing a project, the application shows a warning about potential data loss if there are any non-empty memory layers present. If your memory layer should not trigger such warning, it is possible to suppress that by setting the following custom variable: .. code-block:: python

layer.setCustomProperty(“skipMemoryLayersCheck”, 1)

Accesses data using the OGR drivers (http://www.gdal.org/ogr/ogr_formats.html). The url is the OGR connection string. A wide variety of data formats can be accessed using this driver, including file based formats used by many GIS systems, database formats, and web services. Some of these formats are also supported by custom data providers listed below.

Access data in a SpatiaLite database. The url defines the connection parameters, table, geometry column, and other attributes. The url can be constructed using the QgsDataSourceUri class.

Connects to a PostgreSQL database. The url defines the connection parameters, table, geometry column, and other attributes. The url can be constructed using the QgsDataSourceUri class.

Connects to a Microsoft SQL server database. The url defines the connection parameters, table, geometry column, and other attributes. The url can be constructed using the QgsDataSourceUri class.

Used to access data provided by a web feature service.

The url can be a HTTP url to a WFS server (legacy, e.g. http://foobar/wfs?TYPENAME=xxx&SRSNAME=yyy[&FILTER=zzz]), or, starting with QGIS 2.16, a URI constructed using the QgsDataSourceUri class with the following parameters : - url=string (mandatory): HTTP url to a WFS server endpoint. e.g http://foobar/wfs - typename=string (mandatory): WFS typename - srsname=string (recommended): SRS like ‘EPSG:XXXX’ - username=string - password=string - authcfg=string - version=auto/1.0.0/1.1.0/2.0.0 -sql=string: full SELECT SQL statement with optional WHERE, ORDER BY and possibly with JOIN if supported on server - filter=string: QGIS expression or OGC/FES filter - restrictToRequestBBOX=1: to download only features in the view extent (or more generally in the bounding box of the feature iterator) - maxNumFeatures=number - IgnoreAxisOrientation=1: to ignore EPSG axis order for WFS 1.1 or 2.0 - InvertAxisOrientation=1: to invert axis order - hideDownloadProgressDialog=1: to hide the download progress dialog

The ‘FILTER’ query string parameter can be used to filter the WFS feature type. The ‘FILTER’ key value can either be a QGIS expression or an OGC XML filter. If the value is set to a QGIS expression the driver will turn it into OGC XML filter before passing it to the WFS server. Beware the QGIS expression filter only supports” =, !=, <, >, <=, >=, AND, OR, NOT, LIKE, IS NULL” attribute operators, “BBOX, Disjoint, Intersects, Touches, Crosses, Contains, Overlaps, Within” spatial binary operators and the QGIS local “geomFromWKT, geomFromGML” geometry constructor functions.

Also note:

  • You can use various functions available in the QGIS Expression list,

however the function must exist server side and have the same name and arguments to work.

  • Use the special $geometry parameter to provide the layer geometry column as input

into the spatial binary operators e.g intersects($geometry, geomFromWKT(‘POINT (5 6)’))

Accesses data in a delimited text file, for example CSV files generated by spreadsheets. The contents of the file are split into columns based on specified delimiter characters. Each record may be represented spatially either by an X and Y coordinate column, or by a WKT (well known text) formatted columns.

The url defines the filename, the formatting options (how the text in the file is divided into data fields, and which fields contain the X,Y coordinates or WKT text definition. The options are specified as url query items.

At its simplest the url can just be the filename, in which case it will be loaded as a CSV formatted file.

The url may include the following items:

  • encoding=UTF-8

Defines the character encoding in the file. The default is UTF-8. To use the default encoding for the operating system use “System”.

  • type=(csv|regexp|whitespace|plain)

Defines the algorithm used to split records into columns. Records are defined by new lines, except for csv format files for which quoted fields may span multiple records. The default type is csv.

  • “csv” splits the file based on three sets of characters:

delimiter characters, quote characters, and escape characters. Delimiter characters mark the end of a field. Quote characters enclose a field which can contain delimiter characters, and newlines. Escape characters cause the following character to be treated literally (including delimiter, quote, and newline characters). Escape and quote characters must be different from delimiter characters. Escape characters that are also quote characters are treated specially - they can only escape themselves within quotes. Elsewhere they are treated as quote characters. The defaults for delimiter, quote, and escape are ‘,’, ‘”’, ‘”’. - “regexp” splits each record using a regular expression (see QRegExp documentation for details). - “whitespace” splits each record based on whitespace (on or more whitespace characters. Leading whitespace in the record is ignored. - “plain” is provided for backwards compatibility. It is equivalent to CSV except that the default quote characters are single and double quotes, and there is no escape characters.

  • delimiter=characters

Defines the delimiter characters used for csv and plain type files, or the regular expression for regexp type files. It is a literal string of characters except that “t” may be used to represent a tab character.

  • quote=characters

Defines the characters that are used as quote characters for csv and plain type files.

  • escape=characters

Defines the characters used to escape delimiter, quote, and newline characters.

  • skipLines=n

Defines the number of lines to ignore at the beginning of the file (default 0)

  • useHeader=(yes|no)

Defines whether the first record in the file (after skipped lines) contains column names (default yes)

  • trimFields=(yes|no)

If yes then leading and trailing whitespace will be removed from fields

  • skipEmptyFields=(yes|no)

If yes then empty fields will be discarded (equivalent to concatenating consecutive delimiters)

  • maxFields=#

Specifies the maximum number of fields to load for each record. Additional fields will be discarded. Default is 0 - load all fields.

  • decimalPoint=c

Defines a character that is used as a decimal point in the numeric columns The default is ‘.’.

  • xField=column yField=column

Defines the name of the columns holding the x and y coordinates for XY point geometries. If the useHeader is no (ie there are no column names), then this is the column number (with the first column as 1).

  • xyDms=(yes|no)

If yes then the X and Y coordinates are interpreted as degrees/minutes/seconds format (fairly permissively), or degree/minutes format.

  • wktField=column

Defines the name of the columns holding the WKT geometry definition for WKT geometries. If the useHeader is no (ie there are no column names), then this is the column number (with the first column as 1).

  • geomType=(point|line|polygon|none)

Defines the geometry type for WKT type geometries. QGIS will only display one type of geometry for the layer - any others will be ignored when the file is loaded. By default the provider uses the type of the first geometry in the file. Use geomType to override this type.

geomType can also be set to none, in which case the layer is loaded without geometries.

  • subset=expression

Defines an expression that will identify a subset of records to display

  • crs=crsstring

Defines the coordinate reference system used for the layer. This can be any string accepted by QgsCoordinateReferenceSystem.createFromString()

-subsetIndex=(yes|no)

Determines whether the provider generates an index to improve the efficiency of subsets. The default is yes

-spatialIndex=(yes|no)

Determines whether the provider generates a spatial index. The default is no.

-watchFile=(yes|no)

Defines whether the file will be monitored for changes. The default is to monitor for changes.

  • quiet

Errors encountered loading the file will not be reported in a user dialog if quiet is included (They will still be shown in the output log).

Provider reads tracks, routes, and waypoints from a GPX file. The url defines the name of the file, and the type of data to retrieve from it (“track”, “route”, or “waypoint”).

An example url is “/home/user/data/holiday.gpx?type=route”

Provider to display vector data in a GRASS GIS layer.

TODO QGIS3: Remove virtual from non-inherited methods (like isModified)

See also

QgsVectorLayerUtils

Methods

accept

param visitor

actions

Returns all layer actions defined on this layer.

addAttribute

Add an attribute field (but does not commit it) returns True if the field was added

addCurvedPart

addCurvedRing

Adds a ring to polygon/multipolygon features (takes ownership)

addExpressionField

Add a new field which is calculated by the expression specified

addFeature

param feature

addFeatures

param features

addJoin

Joins another vector layer to this layer

addPart

Adds a new part polygon to a multipart feature

addPartV2

Adds a new part polygon to a multipart feature

addRing

Adds a ring to polygon/multipolygon features

addTopologicalPoints

Adds topological points for every vertex of the geometry.

aggregate

Calculates an aggregated value from the layer’s features.

appendError

Add error message

attributeAlias

Returns the alias of an attribute name or a null string if there is no alias.

attributeAliases

Returns a map of field name to attribute alias

attributeDisplayName

Convenience function that returns the attribute alias if defined or the field name else

attributeList

Returns list of attribute indexes.

attributeTableConfig

Returns the attribute table configuration object.

auxiliaryLayer

Returns the current auxiliary layer.

beginEditCommand

Create edit command for undo/redo operations

boundingBoxOfSelected

Returns the bounding box of the selected features.

capabilitiesString

Capabilities for this layer, comma separated and translated.

changeAttributeValue

Changes an attribute value for a feature (but does not immediately commit the changes).

changeAttributeValues

Changes attributes’ values for a feature (but does not immediately commit the changes).

changeGeometry

Changes a feature’s geometry within the layer’s edit buffer (but does not immediately commit the changes).

childEvent

clone

Returns a new instance equivalent to this one.

commitChanges

Attempts to commit to the underlying data provider any buffered changes made since the last to call to startEditing().

commitErrors

Returns a list containing any error messages generated when attempting to commit changes to the layer.

conditionalStyles

Returns the conditional styles that are set for this layer.

connectNotify

constraintDescription

Returns the descriptive name for the constraint expression for a specified field index.

constraintExpression

Returns the constraint expression for for a specified field index, if set.

countSymbolFeatures

Count features for symbols.

createExpressionContext

rtype

QgsExpressionContext

createExpressionContextScope

rtype

QgsExpressionContextScope

createMapRenderer

Returns new instance of QgsMapLayerRenderer that will be used for rendering of given context

customEvent

dataComment

Returns a description for this layer as defined in the data provider.

dataProvider

rtype

QgsVectorDataProvider

decodedSource

param source

defaultValue

Returns the calculated default value for the specified field index.

defaultValueDefinition

Returns the definition of the expression used when calculating the default value for a field.

deleteAttribute

Deletes an attribute field (but does not commit it).

deleteAttributes

Deletes a list of attribute fields (but does not commit it)

deleteFeature

Deletes a feature from the layer (but does not commit it).

deleteFeatures

Deletes a set of features from the layer (but does not commit it)

deleteSelectedFeatures

Deletes the selected features

deleteStyleFromDatabase

Deletes a style from the database

deleteVertex

Deletes a vertex from a feature.

dependencies

Gets the list of dependencies.

deselect

Deselects feature by its ID

destroyEditCommand

Destroy active command and reverts all changes in it

diagramLayerSettings

rtype

QgsDiagramLayerSettings

diagramRenderer

rtype

QgsDiagramRenderer

diagramsEnabled

Returns whether the layer contains diagrams which are enabled and should be drawn.

disconnectNotify

displayExpression

Returns the preview expression, used to create a human readable preview string.

displayField

This is a shorthand for accessing the displayExpression if it is a simple field.

drawVertexMarker

Draws a vertex symbol at (screen) coordinates x, y.

editBuffer

Buffer with uncommitted editing operations.

editFormConfig

Returns the configuration of the form used to represent this vector layer.

editorWidgetSetup

The editor widget setup defines which QgsFieldFormatter and editor widget will be used for the field at index.

encodedSource

param source

endEditCommand

Finish edit command and add it to undo/redo stack

excludeAttributesWfs

A set of attributes that are not advertised in WFS requests with QGIS server.

excludeAttributesWms

A set of attributes that are not advertised in WMS requests with QGIS server.

expressionField

Returns the expression used for a given expression field

extent

rtype

QgsRectangle

featureBlendMode

Returns the current blending mode for features

featureCount

Number of features rendered with specified legend key.

fieldConstraints

Returns any constraints which are present for a specified field index.

fieldConstraintsAndStrength

Returns a map of constraint with their strength for a specific field of the layer.

fields

Returns the list of fields of this layer.

geometryOptions

Configuration and logic to apply automatically on any edit happening on this layer.

geometryType

Returns point, line or polygon

getFeature

Queries the layer for the feature with the given id.

getFeatures

Queries the layer for features specified in request.

getGeometry

Queries the layer for the geometry at the given id.

getSelectedFeatures

Returns an iterator of the selected features.

getStyleFromDatabase

Returns the named style corresponding to style id provided

hasDependencyCycle

Checks whether a new set of dependencies will introduce a cycle this method is now deprecated and always return false, because circular dependencies are now correctly managed.

hasFeatures

Determines if this vector layer has features.

hasSpatialIndex

rtype

QgsFeatureSource.SpatialIndexPresence

htmlMetadata

rtype

str

insertVertex

Inserts a new vertex before the given vertex number, in the given ring, item (first number is index 0), and feature.

invertSelection

Selects not selected features and deselects selected ones

invertSelectionInRectangle

Inverts selection of features found within the search rectangle (in layer’s coordinates)

isAuxiliaryField

Returns True if the field comes from the auxiliary layer, False otherwise.

isEditCommandActive

Tests if an edit command is active

isEditable

Returns True if the provider is in editing mode

isModified

Returns True if the provider has been modified since the last commit

isSignalConnected

isSpatial

Returns True if this is a geometry layer and False in case of NoGeometry (table only) or UnknownGeometry

joinBuffer

Returns the join buffer object.

labeling

Access to labeling configuration.

labelsEnabled

Returns whether the layer contains labels which are enabled and should be drawn.

listStylesInDatabase

Lists all the style in db split into related to the layer and not related to

loadAuxiliaryLayer

Loads the auxiliary layer for this vector layer.

loadDefaultStyle

rtype

Tuple[str, bool]

loadNamedStyle

Loads a named style from file/local db/datasource db

mapTipTemplate

The mapTip is a pretty, html representation for feature information.

maximumValue

Returns the maximum value for an attribute column or an invalid variant in case of error.

minimumValue

Returns the minimum value for an attribute column or an invalid variant in case of error.

modifySelection

Modifies the current selection on this layer

moveVertex

Moves the vertex at the given position number, ring and item (first number is index 0), and feature to the given coordinates.

moveVertexV2

Moves the vertex at the given position number, ring and item (first number is index 0), and feature to the given coordinates.

opacity

Returns the opacity for the vector layer, where opacity is a value between 0 (totally transparent) and 1.0 (fully opaque).

primaryKeyAttributes

Returns the list of attributes which make up the layer’s primary keys.

readCommonStyle

Read style data common to all layer types

readCustomProperties

Read custom properties from project file.

readExtentFromXml

Returns True if the extent is read from the XML document when data source has no metadata, False if it’s the data provider which determines it.

readSld

param node

readStyle

Reads the style for the current layer from the Dom node supplied.

readStyleManager

Read style manager’s configuration (if any).

readSymbology

Reads the symbology for the current layer from the Dom node supplied.

readXml

Reads vector layer specific state from project file Dom node.

receivers

referencingRelations

Returns the layer’s relations, where the foreign key is on this layer.

reload

Synchronises with changes in the datasource

removeExpressionField

Removes an expression field

removeFieldAlias

Removes an alias (a display name) for attributes to display in dialogs

removeFieldConstraint

Removes a constraint for a specified field index.

removeJoin

Removes a vector layer join

removeSelection

Clear selection

renameAttribute

Renames an attribute field (but does not commit it).

renderer

Returns renderer.

reselect

Reselects the previous set of selected features.

resolveReferences

Resolves references to other layers (kept as layer IDs after reading XML) into layer objects.

rollBack

Stops a current editing operation and discards any uncommitted edits.

saveStyleToDatabase

Saves named and sld style of the layer to the style table in the db.

select

Selects feature by its ID

selectAll

Select all the features

selectByExpression

Selects matching features using an expression.

selectByIds

Selects matching features using a list of feature IDs.

selectByRect

Selects features found within the search rectangle (in layer’s coordinates)

selectedFeatureCount

Returns the number of features that are selected in this layer.

selectedFeatureIds

Returns a list of the selected features IDs in this layer.

selectedFeatures

Returns a copy of the user-selected features.

sender

senderSignalIndex

serverProperties

Returns QGIS Server Properties of the vector layer

setAttributeTableConfig

Sets the attribute table configuration object.

setAuxiliaryLayer

Sets the current auxiliary layer.

setConstraintExpression

Sets the constraint expression for the specified field index.

setCoordinateSystem

Setup the coordinate system transformation for the layer

setDataSource

Update the data source of the layer.

setDefaultValueDefinition

Sets the definition of the expression to use when calculating the default value for a field.

setDependencies

Sets the list of dependencies.

setDiagramLayerSettings

param s

setDiagramRenderer

Sets diagram rendering object (takes ownership)

setDisplayExpression

Set the preview expression, used to create a human readable preview string.

setEditFormConfig

Sets the editFormConfig (configuration) of the form used to represent this vector layer.

setEditorWidgetSetup

copydoc editorWidgetSetup

setError

Sets error message

setExcludeAttributesWfs

A set of attributes that are not advertised in WFS requests with QGIS server.

setExcludeAttributesWms

A set of attributes that are not advertised in WMS requests with QGIS server.

setExtent

Sets the extent

setFeatureBlendMode

Sets the blending mode used for rendering each feature

setFieldAlias

Sets an alias (a display name) for attributes to display in dialogs

setFieldConstraint

Sets a constraint for a specified field index.

setLabeling

Sets labeling configuration.

setLabelsEnabled

Sets whether labels should be enabled for the layer.

setMapTipTemplate

The mapTip is a pretty, html representation for feature information.

setOpacity

Sets the opacity for the vector layer, where opacity is a value between 0 (totally transparent) and 1.0 (fully opaque).

setProviderEncoding

Sets the text encoding of the data provider.

setProviderType

Sets the providerType (provider key)

setReadExtentFromXml

Flag allowing to indicate if the extent has to be read from the XML document when data source has no metadata or if the data provider has to determine it.

setReadOnly

Makes layer read-only (editing disabled) or not

setRenderer

Sets renderer which will be invoked to represent this layer.

setSimplifyMethod

Sets the simplification settings for fast rendering of features

setSubsetString

Sets the string (typically sql) used to define a subset of the layer

setTransformContext

Sets the coordinate transform context to transformContext

setValid

Sets whether layer is valid or not - should be used in constructor.

simplifyDrawingCanbeApplied

Returns whether the VectorLayer can apply the specified simplification hint

simplifyMethod

Returns the simplification settings for fast rendering of features

sourceCrs

rtype

QgsCoordinateReferenceSystem

sourceExtent

rtype

QgsRectangle

sourceName

rtype

str

splitFeatures

Splits features cut by the given line

splitParts

Splits parts cut by the given line

startEditing

Makes the layer editable.

storageType

Returns the permanent storage type for this layer as a friendly name.

storedExpressionManager

Returns the manager of the stored expressions for this layer.

subsetString

Returns the string (typically sql) used to define a subset of the layer.

symbolFeatureIds

Ids of features rendered with specified legend key.

timerEvent

translateFeature

Translates feature by dx, dy

uniqueStringsMatching

Returns unique string values of an attribute which contain a specified subset string.

uniqueValues

Calculates a list of unique values contained within an attribute in the layer.

updateExpressionField

Changes the expression used to define an expression based (virtual) field

updateExtents

Update the extents for the layer.

updateFeature

Updates an existing feature in the layer, replacing the attributes and geometry for the feature with matching QgsFeature.id() with the attributes and geometry from feature.

updateFields

Will regenerate the fields property of this layer by obtaining all fields from the dataProvider, joined fields and virtual fields.

vectorJoins

rtype

List[QgsVectorLayerJoinInfo]

wkbType

Returns the WKBType or WKBUnknown in case of error

writeCommonStyle

Write style data common to all layer types

writeCustomProperties

Write custom properties to project file.

writeSld

Writes the symbology of the layer into the document provided in SLD 1.1 format

writeStyle

Writes just the style information for the layer into the document

writeStyleManager

Write style manager’s configuration (if exists).

writeSymbology

Writes the symbology for the layer into the document provided.

writeXml

Writes vector layer specific state to project file Dom node.

Signals

afterRollBack

Emitted after changes are rolled back.

allowCommitChanged

Emitted whenever the allowCommitChanged() property of this layer changes.

attributeAdded

Will be emitted, when a new attribute has been added to this vector layer.

attributeDeleted

Will be emitted, when an attribute has been deleted from this vector layer.

attributeValueChanged

Emitted whenever an attribute value change is done in the edit buffer.

beforeAddingExpressionField

Will be emitted, when an expression field is going to be added to this vector layer.

beforeCommitChanges

Emitted before changes are committed to the data provider.

beforeEditingStarted

Emitted before editing on this layer is started.

beforeModifiedCheck

Emitted when the layer is checked for modifications.

beforeRemovingExpressionField

Will be emitted, when an expression field is going to be deleted from this vector layer.

beforeRollBack

Emitted before changes are rolled back.

committedAttributeValuesChanges

Emitted when attribute value changes are saved to the provider [signal]

committedAttributesAdded

Emitted when attributes are added to the provider [signal]

committedAttributesDeleted

Emitted when attributes are deleted from the provider [signal]

committedFeaturesAdded

Emitted when features are added to the provider [signal]

committedFeaturesRemoved

Emitted when features are deleted from the provider [signal]

committedGeometriesChanges

Emitted when geometry changes are saved to the provider [signal]

displayExpressionChanged

Emitted when the display expression changes

editCommandDestroyed

Signal emitted, when an edit command is destroyed

editCommandEnded

Signal emitted, when an edit command successfully ended

editCommandStarted

Signal emitted when a new edit command has been started

editFormConfigChanged

Will be emitted whenever the edit form configuration of this layer changes.

editingStarted

Emitted when editing on this layer has started.

editingStopped

Emitted when edited changes have been successfully written to the data provider.

featureAdded

Emitted when a new feature has been added to the layer

featureBlendModeChanged

Signal emitted when setFeatureBlendMode() is called [signal]

featureDeleted

Emitted when a feature has been deleted.

featuresDeleted

Emitted when features have been deleted.

geometryChanged

Emitted whenever a geometry change is done in the edit buffer.

labelingFontNotFound

Emitted when the font family defined for labeling layer is not found on system [signal]

layerModified

Emitted when modifications has been done on layer [signal]

mapTipTemplateChanged

Emitted when the map tip changes

opacityChanged

Emitted when the layer’s opacity is changed, where opacity is a value between 0 (transparent) and 1 (opaque).

raiseError

Signals an error related to this vector layer.

readCustomSymbology

Signal emitted whenever the symbology (QML-file) for this layer is being read.

readOnlyChanged

Emitted when the read only state of this layer is changed.

selectionChanged

Emitted when selection was changed

subsetStringChanged

Emitted when the layer’s subset string has changed.

symbolFeatureCountMapChanged

Emitted when the feature count for symbols on this layer has been recalculated.

updatedFields

Emitted whenever the fields available from this layer have been changed.

writeCustomSymbology

Signal emitted whenever the symbology (QML-file) for this layer is being written.

Attributes

AddToSelection

Cross

EditFailed

EmptyGeometry

FetchFeatureFailed

IntersectSelection

InvalidLayer

NoMarker

RemoveFromSelection

SemiTransparentCircle

SetSelection

Success

AddToSelection = 1
Cross = 1
EditFailed = 2
class EditResult

Bases: int

EmptyGeometry = 1
FetchFeatureFailed = 3
IntersectSelection = 2
InvalidLayer = 4
class LayerOptions(loadDefaultStyle: bool = True, readExtentFromXml: bool = False)

Bases: sip.wrapper

Constructor for LayerOptions.

QgsVectorLayer.LayerOptions(transformContext: QgsCoordinateTransformContext, loadDefaultStyle: bool = True, readExtentFromXml: bool = False) Constructor for LayerOptions.

New in version 3.8.

QgsVectorLayer.LayerOptions(QgsVectorLayer.LayerOptions)

Parameters
  • loadDefaultStyle (bool = True) –

  • readExtentFromXml (bool = False) –

fallbackCrs
fallbackWkbType
loadDefaultStyle
readExtentFromXml
skipCrsValidation
transformContext
NoMarker = 2
RemoveFromSelection = 3
class SelectBehavior

Bases: int

SemiTransparentCircle = 0
SetSelection = 0
Success = 0
class VertexMarkerType

Bases: int

accept(self, visitor: QgsStyleEntityVisitorInterface) → bool
Parameters

visitor (QgsStyleEntityVisitorInterface) –

Return type

bool

actions(self)QgsActionManager

Returns all layer actions defined on this layer.

The pointer which is returned directly points to the actions object which is used by the layer, so any changes are immediately applied.

Return type

QgsActionManager

addAttribute(self, field: QgsField) → bool

Add an attribute field (but does not commit it) returns True if the field was added

Note

Calls to addAttribute() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Parameters

field (QgsField) –

Return type

bool

addCurvedPart(self, ring: QgsCurve) → QgsGeometry.OperationResult

Note

available in Python as addCurvedPart

Note

Calls to addPart() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Parameters

ring (QgsCurve) –

Return type

QgsGeometry.OperationResult

addCurvedRing(self, ring: QgsCurve) → Tuple[QgsGeometry.OperationResult, int]

Adds a ring to polygon/multipolygon features (takes ownership)

Parameters
  • ring (QgsCurve) – ring to add

  • featureId – if specified, feature ID for feature ring was added to will be stored in this parameter

Return type

Tuple[QgsGeometry.OperationResult, int]

Returns

QgsGeometry.OperationResult - Success - LayerNotEditable - AddRingNotInExistingFeature - InvalidInputGeometryType - AddRingNotClosed - AddRingNotValid - AddRingCrossesExistingRings

Note

available in Python as addCurvedRing

Note

Calls to addRing() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

addExpressionField(self, exp: str, fld: QgsField) → int

Add a new field which is calculated by the expression specified

Parameters
  • exp (str) – The expression which calculates the field

  • fld (QgsField) – The field to calculate

Return type

int

Returns

The index of the new field

New in version 2.9.

addFeature(self, feature: QgsFeature, flags: Union[QgsFeatureSink.Flags, QgsFeatureSink.Flag] = 0) → bool
Parameters
Return type

bool

addFeatures(self, features: Iterable[QgsFeature], flags: Union[QgsFeatureSink.Flags, QgsFeatureSink.Flag] = 0) → bool
Parameters
Return type

bool

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

Note

since 2.6 returns bool indicating whether the join can be added

Return type

bool

addPart(self, ring: Iterable[QgsPointXY]) → QgsGeometry.OperationResult

Adds a new part polygon to a multipart feature

Return type

QgsGeometry.OperationResult

Returns

QgsGeometry.OperationResult - Success - LayerNotEditable - SelectionIsEmpty - SelectionIsGreaterThanOne - AddPartSelectedGeometryNotFound - AddPartNotMultiGeometry - InvalidBaseGeometry - InvalidInputGeometryType

Note

Calls to addPart() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

Parameters

ring (Iterable[QgsPointXY]) –

addPartV2(self, ring: Iterable[QgsPointXY]) → QgsGeometry.OperationResult

Adds a new part polygon to a multipart feature

Returns

QgsGeometry.OperationResult - Success - LayerNotEditable - SelectionIsEmpty - SelectionIsGreaterThanOne - AddPartSelectedGeometryNotFound - AddPartNotMultiGeometry - InvalidBaseGeometry - InvalidInputGeometryType

Note

available in Python bindings as addPartV2

Note

Calls to addPart() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

addPartV2(self, ring: Iterable[QgsPoint]) -> QgsGeometry.OperationResult Adds a new part polygon to a multipart feature

Return type

QgsGeometry.OperationResult

Returns

QgsGeometry.OperationResult - Success - LayerNotEditable - SelectionIsEmpty - SelectionIsGreaterThanOne - AddPartSelectedGeometryNotFound - AddPartNotMultiGeometry - InvalidBaseGeometry - InvalidInputGeometryType

Note

available in Python bindings as addPartV2

Note

Calls to addPart() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Parameters

ring (Iterable[QgsPointXY]) –

addRing(self, ring: Iterable[QgsPointXY]) → Tuple[QgsGeometry.OperationResult, int]

Adds a ring to polygon/multipolygon features

Parameters
  • ring (Iterable[QgsPointXY]) – ring to add

  • featureId – if specified, feature ID for feature ring was added to will be stored in this parameter

Returns

QgsGeometry.OperationResult - Success - LayerNotEditable - AddRingNotInExistingFeature - InvalidInputGeometryType - AddRingNotClosed - AddRingNotValid - AddRingCrossesExistingRings

Note

Calls to addRing() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

addRing(self, ring: Iterable[QgsPoint]) -> Tuple[QgsGeometry.OperationResult, int] Adds a ring to polygon/multipolygon features

Parameters
  • ring – ring to add

  • featureId – if specified, feature ID for feature ring was added to will be stored in this parameter

Return type

Tuple[QgsGeometry.OperationResult, int]

Returns

QgsGeometry.OperationResult - Success - LayerNotEditable - AddRingNotInExistingFeature - InvalidInputGeometryType - AddRingNotClosed - AddRingNotValid - AddRingCrossesExistingRings

Note

Calls to addRing() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

addTopologicalPoints(self, geom: QgsGeometry) → int

Adds topological points for every vertex of the geometry.

Parameters

geom (QgsGeometry) – the geometry where each vertex is added to segments of other features

Returns

0 in case of success

Note

geom is not going to be modified by the function

Note

Calls to addTopologicalPoints() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

addTopologicalPoints(self, p: QgsPointXY) -> int Adds a vertex to segments which intersect point p but don’t already have a vertex there. If a feature already has a vertex at position p, no additional vertex is inserted. This method is useful for topological editing.

Parameters

p – position of the vertex

Returns

0 in case of success

Note

Calls to addTopologicalPoints() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

addTopologicalPoints(self, p: QgsPoint) -> int Adds a vertex to segments which intersect point p but don’t already have a vertex there. If a feature already has a vertex at position p, no additional vertex is inserted. This method is useful for topological editing.

Parameters

p – position of the vertex

Return type

int

Returns

0 in case of success

Note

Calls to addTopologicalPoints() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

New in version 3.10.

afterRollBack

Emitted after changes are rolled back.

New in version 3.4: [signal]

aggregate(self, aggregate: QgsAggregateCalculator.Aggregate, fieldOrExpression: str, parameters: QgsAggregateCalculator.AggregateParameters = QgsAggregateCalculator.AggregateParameters(), context: QgsExpressionContext = None, fids: object = None) → Tuple[Any, bool]

Calculates an aggregated value from the layer’s features. Currently any filtering expression provided will override filters in the FeatureRequest.

Parameters
  • aggregate (QgsAggregateCalculator.Aggregate) – aggregate to calculate

  • fieldOrExpression (str) – source field or expression to use as basis for aggregated values.

  • parameters (QgsAggregateCalculator.AggregateParameters = QgsAggregateCalculator.AggregateParameters()) – parameters controlling aggregate calculation

  • context (QgsExpressionContext = None) – expression context for expressions and filters

  • ok – if specified, will be set to True if aggregate calculation was successful

  • fids (object = None) – list of fids to filter, otherwise will use all fids

Return type

Tuple[Any, bool]

Returns

calculated aggregate value

New in version 2.16.

allowCommitChanged

Emitted whenever the allowCommitChanged() property of this layer changes.

New in version 3.4: [signal]

appendError(self, error: QgsErrorMessage)

Add error message

attributeAdded

Will be emitted, when a new attribute has been added to this vector layer. Applies only to types QgsFields.OriginEdit, QgsFields.OriginProvider and QgsFields.OriginExpression

Parameters

idx (int) – The index of the new attribute

See also

updatedFields() [signal]

attributeAlias(self, index: int) → str

Returns the alias of an attribute name or a null string if there is no alias.

see {attributeDisplayName( int attributeIndex )} which returns the field name if no alias is defined.

Parameters

index (int) –

Return type

str

attributeAliases(self) → Dict[str, str]

Returns a map of field name to attribute alias

Return type

Dict[str, str]

attributeDeleted

Will be emitted, when an attribute has been deleted from this vector layer. Applies only to types QgsFields.OriginEdit, QgsFields.OriginProvider and QgsFields.OriginExpression

Parameters

idx (int) – The index of the deleted attribute

See also

updatedFields() [signal]

attributeDisplayName(self, index: int) → str

Convenience function that returns the attribute alias if defined or the field name else

Parameters

index (int) –

Return type

str

attributeList(self) → List[int]

Returns list of attribute indexes. i.e. a list from 0 … fieldCount()

Return type

List[int]

attributeTableConfig(self)QgsAttributeTableConfig

Returns the attribute table configuration object. This defines the appearance of the attribute table.

Return type

QgsAttributeTableConfig

attributeValueChanged

Emitted whenever an attribute value change is done in the edit buffer. Note that at this point the attribute change is not yet saved to the provider.

Parameters
  • fid (int) – The id of the changed feature

  • idx (int) – The attribute index of the changed attribute

  • value (Any) – The new value of the attribute [signal]

auxiliaryLayer(self)QgsAuxiliaryLayer

Returns the current auxiliary layer.

New in version 3.0.

Return type

QgsAuxiliaryLayer

beforeAddingExpressionField

Will be emitted, when an expression field is going to be added to this vector layer. Applies only to types QgsFields.OriginExpression

Parameters

fieldName (str) – The name of the attribute to be added [signal]

beforeCommitChanges

Emitted before changes are committed to the data provider. [signal]

beforeEditingStarted

Emitted before editing on this layer is started. [signal]

beforeModifiedCheck

Emitted when the layer is checked for modifications. Use for last-minute additions. [signal]

beforeRemovingExpressionField

Will be emitted, when an expression field is going to be deleted from this vector layer. Applies only to types QgsFields.OriginExpression

Parameters

idx (int) – The index of the attribute to be deleted [signal]

beforeRollBack

Emitted before changes are rolled back. [signal]

beginEditCommand(self, text: str)

Create edit command for undo/redo operations

Parameters

text (str) – text which is to be displayed in undo window

boundingBoxOfSelected(self)QgsRectangle

Returns the bounding box of the selected features. If there is no selection, QgsRectangle(0,0,0,0) is returned

Return type

QgsRectangle

capabilitiesString(self) → str

Capabilities for this layer, comma separated and translated.

Return type

str

changeAttributeValue(self, fid: int, field: int, newValue: Any, oldValue: Any = None, skipDefaultValues: bool = False) → bool

Changes an attribute value for a feature (but does not immediately commit the changes). The fid argument specifies the ID of the feature to be changed.

The field argument must specify a valid field index for the layer (where an index of 0 corresponds to the first field).

The new value to be assigned to the field is given by newValue.

If a valid QVariant is specified for oldValue, it will be used as the field value in the case of an undo operation corresponding to this attribute value change. If an invalid QVariant is used (the default behavior), then the feature’s current value will be automatically retrieved and used. Note that this involves a feature request to the underlying data provider, so it is more efficient to explicitly pass an oldValue if it is already available.

If skipDefaultValues is set to True, default field values will not be updated. This can be used to override default field value expressions.

Return type

bool

Returns

True if the feature’s attribute was successfully changed.

Note

Calls to changeAttributeValue() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

See also

startEditing()

See also

commitChanges()

See also

changeGeometry()

See also

updateFeature()

Parameters
  • fid (int) –

  • field (int) –

  • newValue (Any) –

  • oldValue (Any = None) –

  • skipDefaultValues (bool = False) –

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

Changes attributes’ values for a feature (but does not immediately commit the changes). The fid argument specifies the ID of the feature to be changed.

The new values to be assigned to the fields are given by newValues.

If a valid QVariant is specified for a field in oldValues, it will be used as the field value in the case of an undo operation corresponding to this attribute value change. If an invalid QVariant is used (the default behavior), then the feature’s current value will be automatically retrieved and used. Note that this involves a feature request to the underlying data provider, so it is more efficient to explicitly pass an oldValue if it is already available.

If skipDefaultValues is set to True, default field values will not be updated. This can be used to override default field value expressions.

Return type

bool

Returns

True if feature’s attributes was successfully changed.

Note

Calls to changeAttributeValues() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

See also

startEditing()

See also

commitChanges()

See also

changeGeometry()

See also

updateFeature()

New in version 3.0.

Parameters
  • fid (int) –

  • newValues (Dict[int) –

  • oldValues (Dict[int) –

  • skipDefaultValues (bool = False) –

changeGeometry(self, fid: int, geometry: QgsGeometry, skipDefaultValue: bool = False) → bool

Changes a feature’s geometry within the layer’s edit buffer (but does not immediately commit the changes). The fid argument specifies the ID of the feature to be changed.

If skipDefaultValue is set to True, default field values will not be updated. This can be used to override default field value expressions.

Return type

bool

Returns

True if the feature’s geometry was successfully changed.

Note

Calls to changeGeometry() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

See also

startEditing()

See also

commitChanges()

See also

updateFeature()

Parameters
  • fid (int) –

  • geometry (QgsGeometry) –

  • skipDefaultValue (bool = False) –

childEvent(self, QChildEvent)
clone(self)QgsVectorLayer

Returns a new instance equivalent to this one. A new provider is created for the same data source and renderers for features and diagrams are cloned too. Moreover, each attributes (transparency, extent, selected features and so on) are identicals.

Return type

QgsVectorLayer

Returns

a new layer instance

New in version 3.0.

commitChanges(self) → bool

Attempts to commit to the underlying data provider any buffered changes made since the last to call to startEditing().

Returns the result of the attempt. If a commit fails (i.e. False is returned), the in-memory changes are left untouched and are not discarded. This allows editing to continue if the commit failed on e.g. a disallowed value in a Postgres database - the user can re-edit and try again.

The commits occur in distinct stages, (add attributes, add features, change attribute values, change geometries, delete features, delete attributes) so if a stage fails, it can be difficult to roll back cleanly. Therefore any error message returned by commitErrors() also includes which stage failed so that the user has some chance of repairing the damage cleanly.

See also

startEditing()

See also

commitErrors()

See also

rollBack()

Return type

bool

commitErrors(self) → List[str]

Returns a list containing any error messages generated when attempting to commit changes to the layer.

See also

commitChanges()

Return type

List[str]

committedAttributeValuesChanges

Emitted when attribute value changes are saved to the provider [signal]

Parameters
  • layerId (str) –

  • changedAttributesValues (object) –

committedAttributesAdded

Emitted when attributes are added to the provider [signal]

Parameters
  • layerId (str) –

  • addedAttributes (object) –

committedAttributesDeleted

Emitted when attributes are deleted from the provider [signal]

Parameters
  • layerId (str) –

  • deletedAttributes (Iterable[int]) –

committedFeaturesAdded

Emitted when features are added to the provider [signal]

Parameters
  • layerId (str) –

  • addedFeatures (Iterable[QgsFeature]) –

committedFeaturesRemoved

Emitted when features are deleted from the provider [signal]

Parameters
  • layerId (str) –

  • deletedFeatureIds (object) –

committedGeometriesChanges

Emitted when geometry changes are saved to the provider [signal]

Parameters
  • layerId (str) –

  • changedGeometries (object) –

conditionalStyles(self)QgsConditionalLayerStyles

Returns the conditional styles that are set for this layer. Style information is used to render conditional formatting in the attribute table.

Return type

QgsConditionalLayerStyles

Returns

Return a QgsConditionalLayerStyles object holding the conditional attribute style information. Style information is generic and can be used for anything.

New in version 2.12.

connectNotify(self, QMetaMethod)
constraintDescription(self, index: int) → str

Returns the descriptive name for the constraint expression for a specified field index.

New in version 3.0.

Parameters

index (int) –

Return type

str

constraintExpression(self, index: int) → str

Returns the constraint expression for for a specified field index, if set.

New in version 3.0.

Parameters

index (int) –

Return type

str

countSymbolFeatures(self, storeSymbolFids: bool = False)QgsVectorLayerFeatureCounter

Count features for symbols. The method will return the feature counter task. You will need to connect to the symbolFeatureCountMapChanged() signal to be notified when the freshly updated feature counts are ready.

Parameters

storeSymbolFids (bool = False) – If True will gather the feature ids (fids) per symbol, otherwise only the count. Default False.

Note

If the count features for symbols has been already done a None is returned. If you need to wait for the results, you can call waitForFinished() on the feature counter.

New in version 3.0.

Return type

QgsVectorLayerFeatureCounter

createExpressionContext(self)QgsExpressionContext
Return type

QgsExpressionContext

createExpressionContextScope(self)QgsExpressionContextScope
Return type

QgsExpressionContextScope

createMapRenderer(self, rendererContext: QgsRenderContext)QgsMapLayerRenderer

Returns new instance of QgsMapLayerRenderer that will be used for rendering of given context

New in version 2.4.

Parameters

rendererContext (QgsRenderContext) –

Return type

QgsMapLayerRenderer

customEvent(self, QEvent)
dataComment(self) → str

Returns a description for this layer as defined in the data provider.

Return type

str

dataProvider(self)QgsVectorDataProvider
Return type

QgsVectorDataProvider

decodedSource(self, source: str, provider: str, context: QgsReadWriteContext) → str
Parameters
Return type

str

defaultValue(self, index: int, feature: QgsFeature = QgsFeature(), context: QgsExpressionContext = None) → Any

Returns the calculated default value for the specified field index. The default value may be taken from a client side default value expression (see setDefaultValueDefinition()) or taken from the underlying data provider.

Parameters
  • index (int) – field index

  • feature (QgsFeature = QgsFeature()) – optional feature to use for default value evaluation. If passed, then properties from the feature (such as geometry) can be used when calculating the default value.

  • context (QgsExpressionContext = None) – optional expression context to evaluate expressions again. If not specified, a default context will be created

Return type

Any

Returns

calculated default value

New in version 3.0.

defaultValueDefinition(self, index: int)QgsDefaultValue

Returns the definition of the expression used when calculating the default value for a field.

Parameters

index (int) – field index

Return type

QgsDefaultValue

Returns

definition of the default value with the expression evaluated when calculating default values for field, or definition with an empty string if no default is set

See also

defaultValue()

New in version 3.0.

deleteAttribute(self, attr: int) → bool

Deletes an attribute field (but does not commit it).

Note

Calls to deleteAttribute() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Parameters

attr (int) –

Return type

bool

deleteAttributes(self, attrs: Iterable[int]) → bool

Deletes a list of attribute fields (but does not commit it)

Parameters

attrs (Iterable[int]) – the indices of the attributes to delete

Return type

bool

Returns

True if at least one attribute has been deleted

deleteFeature(self, fid: int) → bool

Deletes a feature from the layer (but does not commit it).

Note

Calls to deleteFeature() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Parameters

fid (int) –

Return type

bool

deleteFeatures(self, fids: object) → bool

Deletes a set of features from the layer (but does not commit it)

Parameters

fids (object) – The feature ids to delete

Return type

bool

Returns

False if the layer is not in edit mode or does not support deleting in case of an active transaction depends on the provider implementation

Note

Calls to deleteFeatures() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

deleteSelectedFeatures(self) → Tuple[bool, int]

Deletes the selected features

Return type

Tuple[bool, int]

Returns

True in case of success and False otherwise

deleteStyleFromDatabase(self, styleId: str) → Tuple[bool, str]

Deletes a style from the database

Parameters

styleId (str) – the provider’s layer_styles table id of the style to delete

Return type

Tuple[bool, str]

Returns

  • True in case of success

  • msgError: reference to string that will be updated with any error messages

New in version 3.0.

deleteVertex(self, featureId: int, vertex: int) → QgsVectorLayer.EditResult

Deletes a vertex from a feature.

Parameters
  • featureId (int) – ID of feature to remove vertex from

  • vertex (int) – index of vertex to delete

Note

Calls to deleteVertex() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

New in version 2.14.

Return type

QgsVectorLayer.EditResult

dependencies(self) → Set[QgsMapLayerDependency]

Gets the list of dependencies. This includes data dependencies set by the user (setDataDependencies()) as well as dependencies given by the provider

Return type

Set[QgsMapLayerDependency]

Returns

a set of QgsMapLayerDependency

New in version 3.0.

deselect(self, featureId: int)

Deselects feature by its ID

Parameters

featureId (int) – The id of the feature to deselect

See also

deselect()

deselect(self, featureIds: object) Deselects features by their ID

Parameters

featureIds – The ids of the features to deselect

See also

deselect()

destroyEditCommand(self)

Destroy active command and reverts all changes in it

diagramLayerSettings(self)QgsDiagramLayerSettings
Return type

QgsDiagramLayerSettings

diagramRenderer(self)QgsDiagramRenderer
Return type

QgsDiagramRenderer

diagramsEnabled(self) → bool

Returns whether the layer contains diagrams which are enabled and should be drawn.

Return type

bool

Returns

True if layer contains enabled diagrams

New in version 2.9.

disconnectNotify(self, QMetaMethod)
displayExpression(self) → str

Returns the preview expression, used to create a human readable preview string. Uses QgsExpression

Return type

str

Returns

The expression which will be used to preview features for this layer

displayExpressionChanged

Emitted when the display expression changes

New in version 3.0: [signal]

displayField(self) → str

This is a shorthand for accessing the displayExpression if it is a simple field. If the displayExpression is more complex than a simple field, a null string will be returned.

Return type

str

drawVertexMarker(x: float, y: float, p: QPainter, type: QgsVectorLayer.VertexMarkerType, vertexSize: int)

Draws a vertex symbol at (screen) coordinates x, y. (Useful to assist vertex editing.)

Deprecated since version Use: the equivalent QgsSymbolLayerUtils.drawVertexMarker function instead

Parameters
editBuffer(self)QgsVectorLayerEditBuffer

Buffer with uncommitted editing operations. Only valid after editing has been turned on.

Return type

QgsVectorLayerEditBuffer

editCommandDestroyed

Signal emitted, when an edit command is destroyed

Note

This is not a rollback, it is only related to the current edit command. See beforeRollBack() [signal]

editCommandEnded

Signal emitted, when an edit command successfully ended

Note

This does not mean it is also committed, only that it is written to the edit buffer. See beforeCommitChanges() [signal]

editCommandStarted

Signal emitted when a new edit command has been started

Parameters

text (str) – Description for this edit command [signal]

editFormConfig(self)QgsEditFormConfig

Returns the configuration of the form used to represent this vector layer.

Return type

QgsEditFormConfig

Returns

The configuration of this layers’ form

New in version 2.14.

editFormConfigChanged

Will be emitted whenever the edit form configuration of this layer changes.

New in version 3.0: [signal]

editingStarted

Emitted when editing on this layer has started. [signal]

editingStopped

Emitted when edited changes have been successfully written to the data provider. [signal]

editorWidgetSetup(self, index: int)QgsEditorWidgetSetup

The editor widget setup defines which QgsFieldFormatter and editor widget will be used for the field at index.

New in version 3.0.

Parameters

index (int) –

Return type

QgsEditorWidgetSetup

encodedSource(self, source: str, context: QgsReadWriteContext) → str
Parameters
Return type

str

endEditCommand(self)

Finish edit command and add it to undo/redo stack

excludeAttributesWfs(self) → Set[str]

A set of attributes that are not advertised in WFS requests with QGIS server.

Return type

Set[str]

excludeAttributesWms(self) → Set[str]

A set of attributes that are not advertised in WMS requests with QGIS server.

Return type

Set[str]

expressionField(self, index: int) → str

Returns the expression used for a given expression field

Parameters

index (int) – An index of an epxression based (virtual) field

Return type

str

Returns

The expression for the field at index

New in version 2.9.

extent(self)QgsRectangle
Return type

QgsRectangle

featureAdded

Emitted when a new feature has been added to the layer

Parameters

fid (int) – The id of the new feature [signal]

featureBlendMode(self) → QPainter.CompositionMode

Returns the current blending mode for features

Return type

QPainter.CompositionMode

featureBlendModeChanged

Signal emitted when setFeatureBlendMode() is called [signal]

Parameters

blendMode (QPainter.CompositionMode) –

featureCount(self, legendKey: str) → int

Number of features rendered with specified legend key. Features must be first calculated by countSymbolFeatures()

Returns

number of features rendered by symbol or -1 if failed or counts are not available

featureCount(self) -> int Returns feature count including changes which have not yet been committed If you need only the count of committed features call this method on this layer’s provider.

Return type

int

Returns

the number of features on this layer or -1 if unknown.

Parameters

legendKey (str) –

featureDeleted

Emitted when a feature has been deleted.

If you do expensive operations in a slot connected to this, you should prefer to use featuresDeleted( const :py:class:`QgsFeatureIds`& ).

Parameters

fid (int) – The id of the feature which has been deleted [signal]

featuresDeleted

Emitted when features have been deleted.

If features are deleted within an edit command, this will only be emitted once at the end to allow connected slots to minimize the overhead. If features are deleted outside of an edit command, this signal will be emitted once per feature.

Parameters

fids (object) – The feature ids that have been deleted. [signal]

fieldConstraints(self, fieldIndex: int) → QgsFieldConstraints.Constraints

Returns any constraints which are present for a specified field index. These constraints may be inherited from the layer’s data provider or may be set manually on the vector layer from within QGIS.

New in version 3.0.

Parameters

fieldIndex (int) –

Return type

QgsFieldConstraints.Constraints

fieldConstraintsAndStrength(self, fieldIndex: int) → Dict[QgsFieldConstraints.Constraint, QgsFieldConstraints.ConstraintStrength]

Returns a map of constraint with their strength for a specific field of the layer.

Parameters

fieldIndex (int) – field index

New in version 3.0.

Return type

Dict[QgsFieldConstraints.Constraint, QgsFieldConstraints.ConstraintStrength]

fields(self)QgsFields

Returns the list of fields of this layer. This also includes fields which have not yet been saved to the provider.

Return type

QgsFields

Returns

A list of fields

geometryChanged

Emitted whenever a geometry change is done in the edit buffer. Note that at this point the geometry change is not yet saved to the provider.

Parameters
  • fid (int) – The id of the changed feature

  • geometry (QgsGeometry) – The new geometry [signal]

geometryOptions(self)QgsGeometryOptions

Configuration and logic to apply automatically on any edit happening on this layer.

New in version 3.4.

Return type

QgsGeometryOptions

geometryType(self) → QgsWkbTypes.GeometryType

Returns point, line or polygon

Return type

QgsWkbTypes.GeometryType

getFeature(self, fid: int)QgsFeature

Queries the layer for the feature with the given id. If there is no such feature, the returned feature will be invalid.

Parameters

fid (int) –

Return type

QgsFeature

getFeatures(self, request: QgsFeatureRequest = QgsFeatureRequest())QgsFeatureIterator

Queries the layer for features specified in request.

Parameters

request (QgsFeatureRequest = QgsFeatureRequest()) – feature request describing parameters of features to return

Return type

QgsFeatureIterator

Returns

iterator for matching features from provider

getFeatures(self, expression: str) -> QgsFeatureIterator Queries the layer for features matching a given expression.

getFeatures(self, fids: object) -> QgsFeatureIterator Queries the layer for the features with the given ids.

getFeatures(self, rectangle: QgsRectangle) -> QgsFeatureIterator Queries the layer for the features which intersect the specified rectangle.

getGeometry(self, fid: int)QgsGeometry

Queries the layer for the geometry at the given id. If there is no such feature, the returned geometry will be invalid.

Parameters

fid (int) –

Return type

QgsGeometry

getSelectedFeatures(self, request: QgsFeatureRequest = QgsFeatureRequest())QgsFeatureIterator

Returns an iterator of the selected features.

Parameters

request (QgsFeatureRequest = QgsFeatureRequest()) – You may specify a request, e.g. to limit the set of requested attributes. Any filter on the request will be discarded.

Return type

QgsFeatureIterator

Returns

Iterator over the selected features

Warning

Calling this method returns an iterator for all attributes and geometry for the selected features. Consider using the much more efficient selectedFeatureIds() or selectedFeatureCount() if you do not require access to the feature attributes or geometry.

getStyleFromDatabase(self, styleId: str) → Tuple[str, str]

Returns the named style corresponding to style id provided

Parameters

styleId (str) –

Return type

Tuple[str, str]

hasDependencyCycle(self, Iterable[QgsMapLayerDependency]) → bool

Checks whether a new set of dependencies will introduce a cycle this method is now deprecated and always return false, because circular dependencies are now correctly managed.

Deprecated since version QGIS: 3.10

hasFeatures(self) → QgsFeatureSource.FeatureAvailability

Determines if this vector layer has features.

Warning

when a layer is editable and some features have been deleted, this will return QgsFeatureSource.FeatureAvailability.FeaturesMayBeAvailable to avoid a potentially expensive call to the dataprovider.

New in version 3.4.

Return type

QgsFeatureSource.FeatureAvailability

hasSpatialIndex(self) → QgsFeatureSource.SpatialIndexPresence
Return type

QgsFeatureSource.SpatialIndexPresence

htmlMetadata(self) → str
Return type

str

insertVertex(self, x: float, y: float, atFeatureId: int, beforeVertex: int) → bool

Inserts a new vertex before the given vertex number, in the given ring, item (first number is index 0), and feature.

Not meaningful for Point geometries

Note

Calls to insertVertex() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

insertVertex(self, point: QgsPoint, atFeatureId: int, beforeVertex: int) -> bool Inserts a new vertex before the given vertex number, in the given ring, item (first number is index 0), and feature.

Not meaningful for Point geometries

Note

Calls to insertVertex() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Parameters
  • x (float) –

  • y (float) –

  • atFeatureId (int) –

  • beforeVertex (int) –

Return type

bool

invertSelection(self)

Selects not selected features and deselects selected ones

invertSelectionInRectangle(self, rect: QgsRectangle)

Inverts selection of features found within the search rectangle (in layer’s coordinates)

Parameters

rect (QgsRectangle) – The rectangle in which the selection of features will be inverted

isAuxiliaryField(self, index: int) → Tuple[bool, int]

Returns True if the field comes from the auxiliary layer, False otherwise.

New in version 3.0.

Parameters

index (int) –

Return type

Tuple[bool, int]

isEditCommandActive(self) → bool

Tests if an edit command is active

New in version 3.0.

Return type

bool

isEditable(self) → bool

Returns True if the provider is in editing mode

Return type

bool

isModified(self) → bool

Returns True if the provider has been modified since the last commit

Return type

bool

isSignalConnected(self, QMetaMethod) → bool
isSpatial(self) → bool

Returns True if this is a geometry layer and False in case of NoGeometry (table only) or UnknownGeometry

Return type

bool

joinBuffer(self)QgsVectorLayerJoinBuffer

Returns the join buffer object.

New in version 2.14.7.

Return type

QgsVectorLayerJoinBuffer

labeling(self)QgsAbstractVectorLayerLabeling

Access to labeling configuration. May be None if labeling is not used.

Note

Labels will only be rendered if labelsEnabled() returns True.

See also

labelsEnabled()

New in version 3.0.

Return type

QgsAbstractVectorLayerLabeling

labelingFontNotFound

Emitted when the font family defined for labeling layer is not found on system [signal]

Parameters
labelsEnabled(self) → bool

Returns whether the layer contains labels which are enabled and should be drawn.

Return type

bool

Returns

True if layer contains enabled labels

New in version 2.9.

layerModified

Emitted when modifications has been done on layer [signal]

listStylesInDatabase(self) → Tuple[int, List[str], List[str], List[str], str]

Lists all the style in db split into related to the layer and not related to

Parameters
  • ids – the list in which will be stored the style db ids

  • names – the list in which will be stored the style names

  • msgError

Return type

Tuple[int, List[str], List[str], List[str], str]

Returns

  • the number of styles related to current layer (-1 on not implemented)

  • descriptions: the list in which will be stored the style descriptions

Note

Since QGIS 3.2 Styles related to the layer are ordered with the default style first then by update time for Postgres, MySQL and Spatialite.

loadAuxiliaryLayer(self, storage: QgsAuxiliaryStorage, key: str = '') → bool

Loads the auxiliary layer for this vector layer. If there’s no corresponding table in the database, then nothing happens and False is returned. The key is optional because if this layer has been read from a XML document, then the key read in this document is used by default.

Parameters
  • storage (QgsAuxiliaryStorage) – The auxiliary storage where to look for the table

  • key (str = '') – The key to use for joining.

Return type

bool

Returns

True if the auxiliary layer is well loaded, False otherwise

New in version 3.0.

loadDefaultStyle(self) → Tuple[str, bool]
Return type

Tuple[str, bool]

loadNamedStyle(self, theURI: str, loadFromLocalDb: bool, categories: Union[QgsMapLayer.StyleCategories, QgsMapLayer.StyleCategory] = QgsMapLayer.AllStyleCategories) → Tuple[str, bool]

Loads a named style from file/local db/datasource db

Parameters
  • theURI (str) – the URI of the style or the URI of the layer

  • resultFlag – will be set to True if a named style is correctly loaded

  • loadFromLocalDb (bool) – if True forces to load from local db instead of datasource one

  • categories (Union[QgsMapLayer.StyleCategories) – the style categories to be loaded.

loadNamedStyle(self, theURI: str, categories: Union[QgsMapLayer.StyleCategories, QgsMapLayer.StyleCategory] = QgsMapLayer.AllStyleCategories) -> Tuple[str, bool] Calls loadNamedStyle( theURI, resultFlag, False ); Retained for backward compatibility

Return type

Tuple[str, bool]

mapTipTemplate(self) → str

The mapTip is a pretty, html representation for feature information.

It may also contain embedded expressions.

New in version 3.0.

Return type

str

mapTipTemplateChanged

Emitted when the map tip changes

New in version 3.0: [signal]

maximumValue(self, index: int) → Any

Returns the maximum value for an attribute column or an invalid variant in case of error. Note that in some circumstances when unsaved changes are present for the layer then the returned value may be outdated (for instance when the attribute value in a saved feature has been changed inside the edit buffer then the previous saved value may be returned as the maximum).

See also

minimumValue()

See also

uniqueValues()

Parameters

index (int) –

Return type

Any

minimumValue(self, index: int) → Any

Returns the minimum value for an attribute column or an invalid variant in case of error. Note that in some circumstances when unsaved changes are present for the layer then the returned value may be outdated (for instance when the attribute value in a saved feature has been changed inside the edit buffer then the previous saved value may be returned as the minimum).

See also

maximumValue()

See also

uniqueValues()

Parameters

index (int) –

Return type

Any

modifySelection(self, selectIds: object, deselectIds: object)

Modifies the current selection on this layer

Parameters
  • selectIds (object) – Select these ids

  • deselectIds (object) – Deselect these ids

See also

selectByIds()

See also

deselect()

See also

deselect()

moveVertex(self, x: float, y: float, atFeatureId: int, atVertex: int) → bool

Moves the vertex at the given position number, ring and item (first number is index 0), and feature to the given coordinates.

Note

Calls to moveVertex() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Parameters
  • x (float) –

  • y (float) –

  • atFeatureId (int) –

  • atVertex (int) –

Return type

bool

moveVertexV2(self, p: QgsPoint, atFeatureId: int, atVertex: int) → bool

Moves the vertex at the given position number, ring and item (first number is index 0), and feature to the given coordinates.

Note

available in Python as moveVertexV2

Note

Calls to moveVertex() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Parameters
  • p (QgsPoint) –

  • atFeatureId (int) –

  • atVertex (int) –

Return type

bool

opacity(self) → float

Returns the opacity for the vector layer, where opacity is a value between 0 (totally transparent) and 1.0 (fully opaque).

See also

setOpacity()

See also

opacityChanged()

New in version 3.0.

Return type

float

opacityChanged

Emitted when the layer’s opacity is changed, where opacity is a value between 0 (transparent) and 1 (opaque).

See also

setOpacity()

See also

opacity()

New in version 3.0: [signal]

Parameters

opacity (float) –

primaryKeyAttributes(self) → List[int]

Returns the list of attributes which make up the layer’s primary keys.

Return type

List[int]

raiseError

Signals an error related to this vector layer. [signal]

Parameters

msg (str) –

readCommonStyle(self, layerElement: QDomElement, context: QgsReadWriteContext, categories: Union[QgsMapLayer.StyleCategories, QgsMapLayer.StyleCategory] = QgsMapLayer.AllStyleCategories)

Read style data common to all layer types

New in version 3.0.

readCustomProperties(self, layerNode: QDomNode, keyStartsWith: str = '')

Read custom properties from project file.

Parameters
  • layerNode – note to read from

  • keyStartsWith – reads only properties starting with the specified string (or all if the string is empty)*

readCustomSymbology

Signal emitted whenever the symbology (QML-file) for this layer is being read. If there is custom style information saved in the file, you can connect to this signal and update the layer style accordingly.

Parameters
  • element (QDomElement) – The XML layer style element.

  • errorMessage (str) – Write error messages into this string. [signal]

readExtentFromXml(self) → bool

Returns True if the extent is read from the XML document when data source has no metadata, False if it’s the data provider which determines it.

New in version 3.0.

Return type

bool

readOnlyChanged

Emitted when the read only state of this layer is changed. Only applies to manually set readonly state, not to the edit mode.

New in version 3.0: [signal]

readSld(self, node: QDomNode, errorMessage: str) → bool
Parameters
  • node (QDomNode) –

  • errorMessage (str) –

Return type

bool

readStyle(self, node: QDomNode, errorMessage: str, context: QgsReadWriteContext, categories: Union[QgsMapLayer.StyleCategories, QgsMapLayer.StyleCategory] = QgsMapLayer.AllStyleCategories) → bool

Reads the style for the current layer from the Dom node supplied.

Parameters
  • node (QDomNode) – node that will contain the style definition for this layer.

  • errorMessage (str) – reference to string that will be updated with any error messages

  • context (QgsReadWriteContext) – reading context (used for transform from relative to absolute paths)

  • categories (Union[QgsMapLayer.StyleCategories) – the style categories to be read

Return type

bool

Returns

True in case of success.

readStyleManager(self, layerNode: QDomNode)

Read style manager’s configuration (if any). To be called by subclasses.

readSymbology(self, layerNode: QDomNode, errorMessage: str, context: QgsReadWriteContext, categories: Union[QgsMapLayer.StyleCategories, QgsMapLayer.StyleCategory] = QgsMapLayer.AllStyleCategories) → bool

Reads the symbology for the current layer from the Dom node supplied.

Parameters
  • layerNode (QDomNode) – node that will contain the symbology definition for this layer.

  • errorMessage (str) – reference to string that will be updated with any error messages

  • context (QgsReadWriteContext) – reading context (used for transform from relative to absolute paths)

  • categories (Union[QgsMapLayer.StyleCategories) – the style categories to be read

Return type

bool

Returns

True in case of success.

readXml(self, layer_node: QDomNode, context: QgsReadWriteContext) → bool

Reads vector layer specific state from project file Dom node.

Note

Called by QgsMapLayer.readXml()

Parameters
Return type

bool

receivers(self, PYQT_SIGNAL) → int
referencingRelations(self, idx: int) → List[QgsRelation]

Returns the layer’s relations, where the foreign key is on this layer.

Parameters

idx (int) – Only get relations, where idx forms part of the foreign key

Return type

List[QgsRelation]

Returns

A list of relations

reload(self)

Synchronises with changes in the datasource

removeExpressionField(self, index: int)

Removes an expression field

Parameters

index (int) – The index of the field

New in version 2.6.

removeFieldAlias(self, index: int)

Removes an alias (a display name) for attributes to display in dialogs

New in version 3.0.

Parameters

index (int) –

removeFieldConstraint(self, index: int, constraint: QgsFieldConstraints.Constraint)

Removes a constraint for a specified field index. Any constraints inherited from the layer’s data provider will be kept intact and cannot be removed.

New in version 3.0.

Parameters
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) –

removeSelection(self)

Clear selection

See also

selectByIds()

See also

reselect()

renameAttribute(self, index: int, newName: str) → bool

Renames an attribute field (but does not commit it).

Parameters
  • index (int) – attribute index

  • newName (str) – new name of field

Note

Calls to renameAttribute() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

New in version 2.16.

Return type

bool

renderer(self)QgsFeatureRenderer

Returns renderer.

Return type

QgsFeatureRenderer

reselect(self)

Reselects the previous set of selected features. This is only applicable after a prior call to removeSelection().

Any other modifications to the selection following a call to removeSelection() clears memory of the previous selection and consequently calling reselect() has no impact.

New in version 3.10.

resolveReferences(self, project: QgsProject)

Resolves references to other layers (kept as layer IDs after reading XML) into layer objects.

New in version 3.0.

Parameters

project (QgsProject) –

rollBack(self, deleteBuffer: bool = True) → bool

Stops a current editing operation and discards any uncommitted edits.

If deleteBuffer is True the editing buffer will be completely deleted (the default behavior).

See also

startEditing()

See also

commitChanges()

Parameters

deleteBuffer (bool = True) –

Return type

bool

saveStyleToDatabase(self, name: str, description: str, useAsDefault: bool, uiFileContent: str) → str

Saves named and sld style of the layer to the style table in the db.

Parameters
  • name (str) –

  • description (str) –

  • useAsDefault (bool) –

  • uiFileContent (str) –

Return type

str

select(self, featureId: int)

Selects feature by its ID

Parameters

featureId (int) – The id of the feature to select

See also

select()

select(self, featureIds: object) Selects features by their ID

Parameters

featureIds – The ids of the features to select

See also

select()

selectAll(self)

Select all the features

selectByExpression(self, expression: str, behavior: QgsVectorLayer.SelectBehavior = QgsVectorLayer.SetSelection)

Selects matching features using an expression.

Parameters
  • expression (str) – expression to evaluate to select features

  • behavior (QgsVectorLayer.SelectBehavior = QgsVectorLayer.SetSelection) – selection type, allows adding to current selection, removing from selection, etc.

See also

selectByRect()

See also

selectByIds()

New in version 2.16.

selectByIds(self, ids: object, behavior: QgsVectorLayer.SelectBehavior = QgsVectorLayer.SetSelection)

Selects matching features using a list of feature IDs. Will emit the selectionChanged() signal with the clearAndSelect flag set.

Parameters
  • ids (object) – feature IDs to select

  • behavior (QgsVectorLayer.SelectBehavior = QgsVectorLayer.SetSelection) – selection type, allows adding to current selection, removing from selection, etc.

See also

selectByRect()

New in version 2.16.

selectByRect(self, rect: QgsRectangle, behavior: QgsVectorLayer.SelectBehavior = QgsVectorLayer.SetSelection)

Selects features found within the search rectangle (in layer’s coordinates)

Parameters
  • rect (QgsRectangle) – search rectangle

  • behavior (QgsVectorLayer.SelectBehavior = QgsVectorLayer.SetSelection) – selection type, allows adding to current selection, removing from selection, etc.

See also

selectByIds()

selectedFeatureCount(self) → int

Returns the number of features that are selected in this layer.

Return type

int

selectedFeatureIds(self) → object

Returns a list of the selected features IDs in this layer.

See also

selectByIds()

Return type

object

selectedFeatures(self) → List[QgsFeature]

Returns a copy of the user-selected features.

Warning

Calling this method triggers a request for all attributes and geometry for the selected features. Consider using the much more efficient selectedFeatureIds() or selectedFeatureCount() if you do not require access to the feature attributes or geometry.

Return type

List[QgsFeature]

Returns

A list of QgsFeature

selectionChanged

Emitted when selection was changed

Parameters
  • selected (object) – Newly selected feature ids

  • deselected (object) – Ids of all features which have previously been selected but are not any more

  • clearAndSelect (bool) – In case this is set to True, the old selection was dismissed and the new selection corresponds to selected [signal]

sender(self) → QObject
senderSignalIndex(self) → int
serverProperties(self)QgsVectorLayerServerProperties

Returns QGIS Server Properties of the vector layer

New in version 3.10.

Return type

QgsVectorLayerServerProperties

setAttributeTableConfig(self, attributeTableConfig: QgsAttributeTableConfig)

Sets the attribute table configuration object. This defines the appearance of the attribute table.

Parameters

attributeTableConfig (QgsAttributeTableConfig) –

setAuxiliaryLayer(self, layer: QgsAuxiliaryLayer = None)

Sets the current auxiliary layer. The auxiliary layer is automatically put in editable mode and fields are updated. Moreover, a join is created between the current layer and the auxiliary layer. Ownership is transferred.

New in version 3.0.

Parameters

layer (QgsAuxiliaryLayer = None) –

setConstraintExpression(self, index: int, expression: str, description: str = '')

Sets the constraint expression for the specified field index. An optional descriptive name for the constraint can also be set. Setting an empty expression will clear any existing expression constraint.

New in version 3.0.

Parameters
  • index (int) –

  • expression (str) –

  • description (str = '') –

setCoordinateSystem(self)

Setup the coordinate system transformation for the layer

setDataSource(self, dataSource: str, baseName: str, provider: str, loadDefaultStyleFlag: bool = False)

Update the data source of the layer. The layer’s renderer and legend will be preserved only if the geometry type of the new data source matches the current geometry type of the layer.

Parameters
  • dataSource (str) – new layer data source

  • baseName (str) – base name of the layer

  • provider (str) – provider string

  • loadDefaultStyleFlag (bool = False) – set to True to reset the layer’s style to the default for the data source

New in version 2.10.

Deprecated since version Use: version with ProviderOptions argument instead

setDataSource(self, dataSource: str, baseName: str, provider: str, options: QgsDataProvider.ProviderOptions, loadDefaultStyleFlag: bool = False) Updates the data source of the layer. The layer’s renderer and legend will be preserved only if the geometry type of the new data source matches the current geometry type of the layer.

Parameters
  • dataSource – new layer data source

  • baseName – base name of the layer

  • provider – provider string

  • options – provider options

  • loadDefaultStyleFlag – set to True to reset the layer’s style to the default for the data source

See also

dataSourceChanged()

New in version 3.2.

setDefaultValueDefinition(self, index: int, definition: QgsDefaultValue)

Sets the definition of the expression to use when calculating the default value for a field.

Parameters
  • index (int) – field index

  • definition (QgsDefaultValue) – default value definition to use and evaluate when calculating default values for field. Pass an empty expression to clear the default.

See also

defaultValue()

New in version 3.0.

setDependencies(self, layers: Iterable[QgsMapLayerDependency]) → bool

Sets the list of dependencies.

See also

dependencies()

Parameters

layers (Iterable[QgsMapLayerDependency]) – set of QgsMapLayerDependency. Only user-defined dependencies will be added

Return type

bool

Returns

False if a dependency cycle has been detected

New in version 3.0.

setDiagramLayerSettings(self, s: QgsDiagramLayerSettings)
Parameters

s (QgsDiagramLayerSettings) –

setDiagramRenderer(self, r: QgsDiagramRenderer)

Sets diagram rendering object (takes ownership)

Parameters

r (QgsDiagramRenderer) –

setDisplayExpression(self, displayExpression: str)

Set the preview expression, used to create a human readable preview string. Used e.g. in the attribute table feature list. Uses QgsExpression.

Parameters

displayExpression (str) – The expression which will be used to preview features for this layer

setEditFormConfig(self, editFormConfig: QgsEditFormConfig)

Sets the editFormConfig (configuration) of the form used to represent this vector layer.

See also

editFormConfig()

New in version 3.0.

Parameters

editFormConfig (QgsEditFormConfig) –

setEditorWidgetSetup(self, index: int, setup: QgsEditorWidgetSetup)

copydoc editorWidgetSetup

Parameters
setError(self, error: QgsError)

Sets error message

setExcludeAttributesWfs(self, att: Iterable[str])

A set of attributes that are not advertised in WFS requests with QGIS server.

Parameters

att (Iterable[str]) –

setExcludeAttributesWms(self, att: Iterable[str])

A set of attributes that are not advertised in WMS requests with QGIS server.

Parameters

att (Iterable[str]) –

setExtent(self, rect: QgsRectangle)

Sets the extent

Parameters

rect (QgsRectangle) –

setFeatureBlendMode(self, blendMode: QPainter.CompositionMode)

Sets the blending mode used for rendering each feature

Parameters

blendMode (QPainter.CompositionMode) –

setFieldAlias(self, index: int, aliasString: str)

Sets an alias (a display name) for attributes to display in dialogs

New in version 3.0.

Parameters
  • index (int) –

  • aliasString (str) –

setFieldConstraint(self, index: int, constraint: QgsFieldConstraints.Constraint, strength: QgsFieldConstraints.ConstraintStrength = QgsFieldConstraints.ConstraintStrengthHard)

Sets a constraint for a specified field index. Any constraints inherited from the layer’s data provider will be kept intact and cannot be modified. Ie, calling this method only allows for new constraints to be added on top of the existing provider constraints.

New in version 3.0.

Parameters
  • index (int) –

  • constraint (QgsFieldConstraints.Constraint) –

  • strength (QgsFieldConstraints.ConstraintStrength = QgsFieldConstraints.ConstraintStrengthHard) –

setLabeling(self, labeling: QgsAbstractVectorLayerLabeling)

Sets labeling configuration. Takes ownership of the object.

New in version 3.0.

Parameters

labeling (QgsAbstractVectorLayerLabeling) –

setLabelsEnabled(self, enabled: bool)

Sets whether labels should be enabled for the layer.

Note

Labels will only be rendered if labelsEnabled() is True and a labeling object is returned by labeling().

See also

labelsEnabled()

See also

labeling()

Parameters

enabled (bool) –

setMapTipTemplate(self, mapTipTemplate: str)

The mapTip is a pretty, html representation for feature information.

It may also contain embedded expressions.

New in version 3.0.

Parameters

mapTipTemplate (str) –

setOpacity(self, opacity: float)

Sets the opacity for the vector layer, where opacity is a value between 0 (totally transparent) and 1.0 (fully opaque).

See also

opacity()

See also

opacityChanged()

New in version 3.0.

Parameters

opacity (float) –

setProviderEncoding(self, encoding: str)

Sets the text encoding of the data provider.

An empty encoding string indicates that the provider should automatically select the most appropriate encoding.

Warning

Support for setting the provider encoding depends on the underlying data provider. Check dataProvider().capabilities() for the QgsVectorDataProvider.SelectEncoding capability in order to determine if the provider supports this ability.

Parameters

encoding (str) –

setProviderType(self, providerType: str)

Sets the providerType (provider key)

setReadExtentFromXml(self, readExtentFromXml: bool)

Flag allowing to indicate if the extent has to be read from the XML document when data source has no metadata or if the data provider has to determine it.

New in version 3.0.

Parameters

readExtentFromXml (bool) –

setReadOnly(self, readonly: bool = True) → bool

Makes layer read-only (editing disabled) or not

Return type

bool

Returns

False if the layer is in editing yet

Parameters

readonly (bool = True) –

setRenderer(self, r: QgsFeatureRenderer)

Sets renderer which will be invoked to represent this layer. Ownership is transferred.

Parameters

r (QgsFeatureRenderer) –

setSimplifyMethod(self, simplifyMethod: QgsVectorSimplifyMethod)

Sets the simplification settings for fast rendering of features

New in version 2.2.

Parameters

simplifyMethod (QgsVectorSimplifyMethod) –

setSubsetString(self, subset: str) → bool

Sets the string (typically sql) used to define a subset of the layer

Parameters

subset (str) – The subset string. This may be the where clause of a sql statement or other definition string specific to the underlying dataprovider and data store.

Return type

bool

Returns

True, when setting the subset string was successful, False otherwise

setTransformContext(self, transformContext: QgsCoordinateTransformContext)

Sets the coordinate transform context to transformContext

New in version 3.8.

Parameters

transformContext (QgsCoordinateTransformContext) –

setValid(self, valid: bool)

Sets whether layer is valid or not - should be used in constructor.

simplifyDrawingCanbeApplied(self, renderContext: QgsRenderContext, simplifyHint: QgsVectorSimplifyMethod.SimplifyHint) → bool

Returns whether the VectorLayer can apply the specified simplification hint

Note

Do not use in 3rd party code - may be removed in future version!

New in version 2.2.

Parameters
Return type

bool

simplifyMethod(self)QgsVectorSimplifyMethod

Returns the simplification settings for fast rendering of features

New in version 2.2.

Return type

QgsVectorSimplifyMethod

sourceCrs(self)QgsCoordinateReferenceSystem
Return type

QgsCoordinateReferenceSystem

sourceExtent(self)QgsRectangle
Return type

QgsRectangle

sourceName(self) → str
Return type

str

splitFeatures(self, splitLine: Iterable[QgsPointXY], topologicalEditing: bool = False) → QgsGeometry.OperationResult

Splits features cut by the given line

Parameters
  • splitLine (Iterable[QgsPointXY]) – line that splits the layer features

  • topologicalEditing (bool = False) – True if topological editing is enabled

Returns

QgsGeometry.OperationResult - Success - NothingHappened - LayerNotEditable - InvalidInputGeometryType - InvalidBaseGeometry - GeometryEngineError - SplitCannotSplitPoint

Note

Calls to splitFeatures() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

splitFeatures(self, splitLine: Iterable[QgsPoint], topologicalEditing: bool = False) -> QgsGeometry.OperationResult Splits features cut by the given line

Parameters
  • splitLine – line that splits the layer features

  • topologicalEditingTrue if topological editing is enabled

Return type

QgsGeometry.OperationResult

Returns

QgsGeometry.OperationResult - Success - NothingHappened - LayerNotEditable - InvalidInputGeometryType - InvalidBaseGeometry - GeometryEngineError - SplitCannotSplitPoint

Note

Calls to splitFeatures() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

splitParts(self, splitLine: Iterable[QgsPointXY], topologicalEditing: bool = False) → QgsGeometry.OperationResult

Splits parts cut by the given line

Parameters
  • splitLine (Iterable[QgsPointXY]) – line that splits the layer features

  • topologicalEditing (bool = False) – True if topological editing is enabled

Returns

QgsGeometry.OperationResult - Success - NothingHappened - LayerNotEditable - InvalidInputGeometryType - InvalidBaseGeometry - GeometryEngineError - SplitCannotSplitPoint

Note

Calls to splitParts() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Deprecated since version QGIS: 3.12 - will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY.

splitParts(self, splitLine: Iterable[QgsPoint], topologicalEditing: bool = False) -> QgsGeometry.OperationResult Splits parts cut by the given line

Parameters
  • splitLine – line that splits the layer features

  • topologicalEditingTrue if topological editing is enabled

Return type

QgsGeometry.OperationResult

Returns

QgsGeometry.OperationResult - Success - NothingHappened - LayerNotEditable - InvalidInputGeometryType - InvalidBaseGeometry - GeometryEngineError - SplitCannotSplitPoint

Note

Calls to splitParts() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

startEditing(self) → bool

Makes the layer editable.

This starts an edit session on this layer. Changes made in this edit session will not be made persistent until commitChanges() is called, and can be reverted by calling rollBack().

Return type

bool

Returns

True if the layer was successfully made editable, or False if the operation failed (e.g. due to an underlying read-only data source, or lack of edit support by the backend data provider).

See also

commitChanges()

See also

rollBack()

storageType(self) → str

Returns the permanent storage type for this layer as a friendly name. This is obtained from the data provider and does not follow any standard.

Return type

str

storedExpressionManager(self)QgsStoredExpressionManager

Returns the manager of the stored expressions for this layer.

New in version 3.10.

Return type

QgsStoredExpressionManager

subsetString(self) → str

Returns the string (typically sql) used to define a subset of the layer.

Return type

str

Returns

The subset string or null QString if not implemented by the provider

subsetStringChanged

Emitted when the layer’s subset string has changed.

New in version 3.2: [signal]

symbolFeatureCountMapChanged

Emitted when the feature count for symbols on this layer has been recalculated.

New in version 3.0: [signal]

symbolFeatureIds(self, legendKey: str) → object

Ids of features rendered with specified legend key. Features must be first calculated by countSymbolFeatures()

Return type

object

Returns

Ids of features rendered by symbol or -1 if failed or Ids are not available

New in version 3.10.

Parameters

legendKey (str) –

timerEvent(self, QTimerEvent)
translateFeature(self, featureId: int, dx: float, dy: float) → int

Translates feature by dx, dy

Parameters
  • featureId (int) – id of the feature to translate

  • dx (float) – translation of x-coordinate

  • dy (float) – translation of y-coordinate

Return type

int

Returns

0 in case of success

Note

Calls to translateFeature() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

uniqueStringsMatching(self, index: int, substring: str, limit: int = - 1, feedback: QgsFeedback = None) → List[str]

Returns unique string values of an attribute which contain a specified subset string. Subset matching is done in a case-insensitive manner. Note that in some circumstances when unsaved changes are present for the layer then the returned list may contain outdated values (for instance when the attribute value in a saved feature has been changed inside the edit buffer then the previous saved value will be included in the returned list).

Parameters
  • index (int) – column index for attribute

  • substring (str) – substring to match (case insensitive)

  • limit (int = -1) – maxmum number of the values to return, or -1 to return all unique values

  • feedback (QgsFeedback = None) – optional feedback object for canceling request

Return type

List[str]

Returns

list of unique strings containing substring

uniqueValues(self, fieldIndex: int, limit: int = - 1) → Set[Any]

Calculates a list of unique values contained within an attribute in the layer. Note that in some circumstances when unsaved changes are present for the layer then the returned list may contain outdated values (for instance when the attribute value in a saved feature has been changed inside the edit buffer then the previous saved value will be included in the returned list).

Parameters
  • fieldIndex (int) – column index for attribute

  • limit (int = -1) – maximum number of values to return (or -1 if unlimited)

See also

minimumValue()

See also

maximumValue()

Return type

Set[Any]

updateExpressionField(self, index: int, exp: str)

Changes the expression used to define an expression based (virtual) field

Parameters
  • index (int) – The index of the expression to change

  • exp (str) – The new expression to set

New in version 2.9.

updateExtents(self, force: bool = False)

Update the extents for the layer. This is necessary if features are added/deleted or the layer has been subsetted.

Parameters

force (bool = False) – True to update layer extent even if it’s read from xml by default, False otherwise

updateFeature(self, feature: QgsFeature, skipDefaultValues: bool = False) → bool

Updates an existing feature in the layer, replacing the attributes and geometry for the feature with matching QgsFeature.id() with the attributes and geometry from feature. Changes are not immediately committed to the layer.

If skipDefaultValue is set to True, default field values will not be updated. This can be used to override default field value expressions.

Returns True if the feature’s attribute was successfully changed.

Note

Calls to updateFeature() are only valid for layers in which edits have been enabled by a call to startEditing(). Changes made to features using this method are not committed to the underlying data provider until a commitChanges() call is made. Any uncommitted changes can be discarded by calling rollBack().

Warning

This method needs to query the underlying data provider to fetch the feature with matching QgsFeature.id() on every call. Depending on the underlying data source this can be slow to execute. Consider using the more efficient changeAttributeValue() or changeGeometry() methods instead.

See also

startEditing()

See also

commitChanges()

See also

changeGeometry()

Parameters
  • feature (QgsFeature) –

  • skipDefaultValues (bool = False) –

Return type

bool

updateFields(self)

Will regenerate the fields property of this layer by obtaining all fields from the dataProvider, joined fields and virtual fields. It will also take any changes made to default values into consideration.

Note

Unless the fields on the provider have directly been modified, there is no reason to call this method.

updatedFields

Emitted whenever the fields available from this layer have been changed. This can be due to manually adding attributes or due to a join. [signal]

vectorJoins(self) → List[QgsVectorLayerJoinInfo]
Return type

List[QgsVectorLayerJoinInfo]

wkbType(self) → QgsWkbTypes.Type

Returns the WKBType or WKBUnknown in case of error

Return type

QgsWkbTypes.Type

writeCommonStyle(self, layerElement: QDomElement, document: QDomDocument, context: QgsReadWriteContext, categories: Union[QgsMapLayer.StyleCategories, QgsMapLayer.StyleCategory] = QgsMapLayer.AllStyleCategories)

Write style data common to all layer types

New in version 3.0.

writeCustomProperties(self, layerNode: QDomNode, doc: QDomDocument)

Write custom properties to project file.

writeCustomSymbology

Signal emitted whenever the symbology (QML-file) for this layer is being written. If there is custom style information you want to save to the file, you can connect to this signal and update the element accordingly.

Parameters
  • element (QDomElement) – The XML element where you can add additional style information to.

  • doc (QDomDocument) – The XML document that you can use to create new XML nodes.

  • errorMessage (str) – Write error messages into this string. [signal]

writeSld(self, node: QDomNode, doc: QDomDocument, errorMessage: str, props: Dict[str, str] = {}) → bool

Writes the symbology of the layer into the document provided in SLD 1.1 format

Parameters
  • node (QDomNode) – the node that will have the style element added to it.

  • doc (QDomDocument) – the document that will have the QDomNode added.

  • errorMessage (str) – reference to string that will be updated with any error messages

  • props (Dict[str) – a open ended set of properties that can drive/inform the SLD encoding

Return type

bool

Returns

True in case of success

writeStyle(self, node: QDomNode, doc: QDomDocument, errorMessage: str, context: QgsReadWriteContext, categories: Union[QgsMapLayer.StyleCategories, QgsMapLayer.StyleCategory] = QgsMapLayer.AllStyleCategories) → bool

Writes just the style information for the layer into the document

Parameters
  • node (QDomNode) – the node that will have the style element added to it.

  • doc (QDomDocument) – the document that will have the QDomNode added.

  • errorMessage (str) – reference to string that will be updated with any error messages

  • context (QgsReadWriteContext) – writing context (used for transform from absolute to relative paths)

  • categories (Union[QgsMapLayer.StyleCategories) – the style categories to be written

Return type

bool

Returns

True in case of success.

writeStyleManager(self, layerNode: QDomNode, doc: QDomDocument)

Write style manager’s configuration (if exists). To be called by subclasses.

writeSymbology(self, node: QDomNode, doc: QDomDocument, errorMessage: str, context: QgsReadWriteContext, categories: Union[QgsMapLayer.StyleCategories, QgsMapLayer.StyleCategory] = QgsMapLayer.AllStyleCategories) → bool

Writes the symbology for the layer into the document provided.

Parameters
  • node (QDomNode) – the node that will have the style element added to it.

  • doc (QDomDocument) – the document that will have the QDomNode added.

  • errorMessage (str) – reference to string that will be updated with any error messages

  • context (QgsReadWriteContext) – writing context (used for transform from absolute to relative paths)

  • categories (Union[QgsMapLayer.StyleCategories) – the style categories to be written

Return type

bool

Returns

True in case of success.

writeXml(self, layer_node: QDomNode, doc: QDomDocument, context: QgsReadWriteContext) → bool

Writes vector layer specific state to project file Dom node.

Note

Called by QgsMapLayer.writeXml()

Parameters
Return type

bool