mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
793 lines
20 KiB
Plaintext
793 lines
20 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgsfeature.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class QgsFeature
|
|
{
|
|
%Docstring(signature="appended")
|
|
The feature class encapsulates a single feature including its unique ID,
|
|
geometry and a list of field/values attributes.
|
|
|
|
.. note::
|
|
|
|
:py:class:`QgsFeature` objects are implicitly shared.
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsfeature.h"
|
|
#if (SIP_VERSION >= 0x040900 && SIP_VERSION < 0x040c01)
|
|
#define sipType_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
|
|
#endif
|
|
%End
|
|
public:
|
|
static const QMetaObject staticMetaObject;
|
|
|
|
public:
|
|
|
|
SIP_PYOBJECT __iter__();
|
|
%MethodCode
|
|
QgsAttributes attributes = sipCpp->attributes();
|
|
PyObject *attrs = sipConvertFromType( &attributes, sipType_QgsAttributes, Py_None );
|
|
sipRes = PyObject_GetIter( attrs );
|
|
%End
|
|
|
|
SIP_PYOBJECT __getitem__( int key );
|
|
%MethodCode
|
|
QgsAttributes attrs = sipCpp->attributes();
|
|
if ( a0 < 0 || a0 >= attrs.count() )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
{
|
|
QVariant *v = new QVariant( attrs.at( a0 ) );
|
|
sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
|
|
}
|
|
%End
|
|
|
|
SIP_PYOBJECT __getitem__( const QString &name );
|
|
%MethodCode
|
|
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
|
|
if ( fieldIdx == -1 )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
{
|
|
QVariant *v = new QVariant( sipCpp->attribute( fieldIdx ) );
|
|
sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
|
|
}
|
|
%End
|
|
|
|
void __setitem__( int key, QVariant value /GetWrapper/ );
|
|
%MethodCode
|
|
bool rv;
|
|
|
|
if ( a1Wrapper == Py_None )
|
|
{
|
|
rv = sipCpp->setAttribute( a0, QVariant( QVariant::Int ) );
|
|
}
|
|
else
|
|
{
|
|
rv = sipCpp->setAttribute( a0, *a1 );
|
|
}
|
|
|
|
if ( !rv )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
%End
|
|
|
|
void __setitem__( const QString &key, QVariant value /GetWrapper/ );
|
|
%MethodCode
|
|
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
|
|
if ( fieldIdx == -1 )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
{
|
|
if ( a1Wrapper == Py_None )
|
|
{
|
|
sipCpp->setAttribute( *a0, QVariant( QVariant::Int ) );
|
|
}
|
|
else
|
|
{
|
|
sipCpp->setAttribute( fieldIdx, *a1 );
|
|
}
|
|
}
|
|
%End
|
|
|
|
void __delitem__( int key );
|
|
%MethodCode
|
|
if ( a0 >= 0 && a0 < sipCpp->attributes().count() )
|
|
sipCpp->deleteAttribute( a0 );
|
|
else
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
%End
|
|
|
|
void __delitem__( const QString &name );
|
|
%MethodCode
|
|
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
|
|
if ( fieldIdx == -1 )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
sipCpp->deleteAttribute( fieldIdx );
|
|
%End
|
|
|
|
Py_hash_t __hash__() const;
|
|
%MethodCode
|
|
sipRes = qHash( *sipCpp );
|
|
%End
|
|
|
|
QgsFeature( qint64 id = FID_NULL );
|
|
%Docstring
|
|
Constructor for QgsFeature
|
|
|
|
:param id: unique feature ID
|
|
%End
|
|
|
|
QgsFeature( const QgsFields &fields, qint64 id = FID_NULL );
|
|
%Docstring
|
|
Constructor for QgsFeature
|
|
|
|
:param fields: feature's fields
|
|
:param id: unique feature ID
|
|
%End
|
|
|
|
QgsFeature( const QgsFeature &rhs );
|
|
%Docstring
|
|
Copy constructor
|
|
%End
|
|
|
|
|
|
bool operator==( const QgsFeature &other ) const;
|
|
|
|
bool operator!=( const QgsFeature &other ) const;
|
|
|
|
virtual ~QgsFeature();
|
|
|
|
QgsFeatureId id() const;
|
|
%Docstring
|
|
Returns the feature ID for this feature.
|
|
|
|
.. seealso:: :py:func:`setId`
|
|
%End
|
|
|
|
void setId( QgsFeatureId id );
|
|
%Docstring
|
|
Sets the feature ``id`` for this feature.
|
|
|
|
:param id: feature id
|
|
|
|
.. seealso:: :py:func:`id`
|
|
|
|
.. warning::
|
|
|
|
Feature IDs will be automatically changed whenever a feature is added to vector layer or data provider.
|
|
This method is not designed to allow a specific feature ID to be assigned to a feature which will be added to a
|
|
layer or data provider, and the results will be unpredictable
|
|
%End
|
|
|
|
QgsAttributes attributes() const;
|
|
%Docstring
|
|
Returns the feature's attributes.
|
|
|
|
Alternatively, in Python it is possible to directly iterate over a feature in order to retrieve
|
|
its attributes:
|
|
|
|
.. code-block:: python
|
|
|
|
feature = QgsFeature()
|
|
feature.setAttributes([11, 'string value', 55.5])
|
|
for attr in feature:
|
|
print(attr)
|
|
|
|
.. seealso:: :py:func:`setAttributes`
|
|
|
|
.. seealso:: :py:func:`attributeMap`
|
|
%End
|
|
|
|
|
|
SIP_PYOBJECT attributeMap() const /TypeHint="Dict[str, Optional[object]]"/;
|
|
%Docstring
|
|
Returns the feature's attributes as a map of field name to value.
|
|
|
|
.. note::
|
|
|
|
The fields definition must be associated with the feature using :py:func:`~QgsFeature.setFields` before this method can be used.
|
|
|
|
:raises ValueError: if the field definition is unset or the size of the fields does not match the size of the feature's attributes()
|
|
|
|
|
|
.. seealso:: :py:func:`attributes`
|
|
|
|
.. seealso:: :py:func:`setAttributes`
|
|
|
|
.. versionadded:: 3.22.2
|
|
%End
|
|
%MethodCode
|
|
const int fieldSize = sipCpp->fields().size();
|
|
const int attributeSize = sipCpp->attributes().size();
|
|
if ( fieldSize == 0 && attributeSize != 0 )
|
|
{
|
|
PyErr_SetString( PyExc_ValueError, QStringLiteral( "Field definition has not been set for feature" ).toUtf8().constData() );
|
|
sipIsErr = 1;
|
|
}
|
|
else if ( fieldSize != attributeSize )
|
|
{
|
|
PyErr_SetString( PyExc_ValueError, QStringLiteral( "Feature attribute size (%1) does not match number of fields (%2)" ).arg( attributeSize ).arg( fieldSize ).toUtf8().constData() );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
{
|
|
QVariantMap *v = new QVariantMap( sipCpp->attributeMap() );
|
|
const sipTypeDef *qvariantmap_type = sipFindType( "QMap<QString,QVariant>" );
|
|
sipRes = sipConvertFromNewType( v, qvariantmap_type, Py_None );
|
|
}
|
|
%End
|
|
|
|
int attributeCount() const;
|
|
%Docstring
|
|
Returns the number of attributes attached to the feature.
|
|
|
|
.. versionadded:: 3.18
|
|
%End
|
|
|
|
void setAttributes( const QgsAttributes &attrs );
|
|
%Docstring
|
|
Sets the feature's attributes.
|
|
|
|
Calling this method will automatically set the feature as valid (see :py:func:`~QgsFeature.isValid`).
|
|
|
|
The number of provided attributes need to exactly match the number of the feature's fields.
|
|
|
|
:param attrs: List of attribute values
|
|
|
|
.. warning::
|
|
|
|
If the number of provided attributes does not exactly match
|
|
the number of the feature's fields then it will not be possible to add this feature to the corresponding data
|
|
provider.
|
|
|
|
|
|
.. seealso:: :py:func:`setAttribute`
|
|
|
|
.. seealso:: :py:func:`attributes`
|
|
%End
|
|
|
|
|
|
bool setAttribute( int field, const QVariant &attr /GetWrapper/ );
|
|
%Docstring
|
|
Sets an attribute's value by field index.
|
|
|
|
If the attribute was successfully set then the feature will be automatically marked as valid (see :py:func:`~QgsFeature.isValid`).
|
|
|
|
Alternatively, in Python it is possible to directly set a field's value via the field's index:
|
|
|
|
.. code-block:: python
|
|
|
|
fields = QgsFields()
|
|
fields.append(QgsField('my_id', QVariant.Int))
|
|
fields.append(QgsField('name', QVariant.String))
|
|
feature = QgsFeature(fields)
|
|
|
|
# set the "name" field value
|
|
feature[1] = "my name"
|
|
# set the "my_id" field value
|
|
feature[0] = 55
|
|
|
|
:param field: the index of the field to set
|
|
:param attr: the value of the attribute
|
|
|
|
:raises KeyError: if the field index does not exist
|
|
|
|
.. seealso:: :py:func:`setAttributes`
|
|
%End
|
|
%MethodCode
|
|
bool rv;
|
|
|
|
if ( a1Wrapper == Py_None )
|
|
{
|
|
rv = sipCpp->setAttribute( a0, QVariant( QVariant::Int ) );
|
|
}
|
|
else
|
|
{
|
|
rv = sipCpp->setAttribute( a0, *a1 );
|
|
}
|
|
|
|
if ( !rv )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
|
|
sipRes = rv;
|
|
%End
|
|
|
|
void initAttributes( int fieldCount );
|
|
%Docstring
|
|
Initialize this feature with the given number of fields.
|
|
|
|
Discards any previously set attribute data.
|
|
|
|
:param fieldCount: Number of fields to initialize
|
|
|
|
.. seealso:: :py:func:`resizeAttributes`
|
|
%End
|
|
|
|
void resizeAttributes( int fieldCount );
|
|
%Docstring
|
|
Resizes the attributes attached to this feature to the given number of fields.
|
|
|
|
If the new ``fieldCount`` is greater than the original number of fields then the additional attributes will
|
|
be filled with NULL values. All existing attributes will remain unchanged.
|
|
|
|
If the new ``fieldCount`` is less than the original number of fields then the unwanted values will be discarded from the
|
|
end of the existing attributes.
|
|
|
|
.. seealso:: :py:func:`initAttributes`
|
|
|
|
.. seealso:: :py:func:`padAttributes`
|
|
|
|
.. versionadded:: 3.18
|
|
%End
|
|
|
|
void padAttributes( int count );
|
|
%Docstring
|
|
Resizes the attributes attached to this feature by appending the specified ``count`` of NULL values to the end of the existing attributes.
|
|
|
|
.. seealso:: :py:func:`resizeAttributes`
|
|
|
|
.. versionadded:: 3.18
|
|
%End
|
|
|
|
|
|
void deleteAttribute( int field );
|
|
%Docstring
|
|
Clear's an attribute's value by its index.
|
|
|
|
:param field: the index of the field
|
|
|
|
Alternatively, in Python it is possible to directly `del` an attribute via its index:
|
|
|
|
.. code-block:: python
|
|
|
|
feature = QgsFeature()
|
|
feature.setAttributes([11, 'my feature', 55.5])
|
|
|
|
# will print [11, 'my feature', 55.5]
|
|
print(feature.attributes())
|
|
|
|
# clear the second attribute
|
|
del feature[1]
|
|
|
|
# will now print [11, NONE]
|
|
print(feature.attributes())
|
|
|
|
|
|
|
|
:raises KeyError: if the field is not found
|
|
|
|
.. seealso:: :py:func:`setAttribute`
|
|
%End
|
|
%MethodCode
|
|
if ( a0 >= 0 && a0 < sipCpp->attributes().count() )
|
|
sipCpp->deleteAttribute( a0 );
|
|
else
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
%End
|
|
|
|
bool isValid() const;
|
|
%Docstring
|
|
Returns the validity of this feature.
|
|
|
|
This is normally set by the provider to indicate some problem that makes the feature
|
|
invalid or to indicate a null feature.
|
|
|
|
.. seealso:: :py:func:`setValid`
|
|
%End
|
|
|
|
void setValid( bool validity );
|
|
%Docstring
|
|
Sets the validity of the feature.
|
|
|
|
:param validity: set to ``True`` if feature is valid
|
|
|
|
.. seealso:: :py:func:`isValid`
|
|
%End
|
|
|
|
bool hasGeometry() const;
|
|
%Docstring
|
|
Returns ``True`` if the feature has an associated geometry.
|
|
|
|
.. seealso:: :py:func:`geometry`
|
|
%End
|
|
|
|
QgsGeometry geometry() const;
|
|
%Docstring
|
|
Returns the geometry associated with this feature. If the feature has no geometry,
|
|
an empty :py:class:`QgsGeometry` object will be returned.
|
|
|
|
.. seealso:: :py:func:`hasGeometry`
|
|
|
|
.. seealso:: :py:func:`setGeometry`
|
|
%End
|
|
|
|
void setGeometry( const QgsGeometry &geometry );
|
|
%Docstring
|
|
Set the feature's geometry.
|
|
|
|
Calling this method will automatically set the feature as valid (see :py:func:`~QgsFeature.isValid`).
|
|
|
|
:param geometry: new feature geometry
|
|
|
|
.. seealso:: :py:func:`geometry`
|
|
|
|
.. seealso:: :py:func:`clearGeometry`
|
|
%End
|
|
|
|
void setGeometry( QgsAbstractGeometry *geometry /Transfer/ );
|
|
%Docstring
|
|
Set the feature's ``geometry``.
|
|
|
|
Ownership of the geometry is transferred to the feature.
|
|
|
|
Calling this method will automatically set the feature as valid (see :py:func:`~QgsFeature.isValid`).
|
|
|
|
This method is a shortcut for calling:
|
|
|
|
.. code-block:: python
|
|
|
|
feature.setGeometry( QgsGeometry( geometry ) )
|
|
|
|
Example
|
|
-------
|
|
|
|
.. code-block:: python
|
|
|
|
# Sets a feature's geometry to a point geometry
|
|
feature.setGeometry( QgsPoint( 210, 41 ) )
|
|
print(feature.geometry())
|
|
# output: <QgsGeometry: Point (210 41)>
|
|
|
|
# Sets a feature's geometry to a line string
|
|
feature.setGeometry( QgsLineString( [ QgsPoint( 210, 41 ), QgsPoint( 301, 55 ) ] ) )
|
|
print(feature.geometry())
|
|
# output: <QgsGeometry: LineString (210 41, 301 55)>
|
|
|
|
|
|
|
|
.. seealso:: :py:func:`geometry`
|
|
|
|
.. seealso:: :py:func:`clearGeometry`
|
|
|
|
.. versionadded:: 3.6
|
|
%End
|
|
%MethodCode
|
|
sipCpp->setGeometry( std::unique_ptr< QgsAbstractGeometry>( a0 ) );
|
|
%End
|
|
|
|
void clearGeometry();
|
|
%Docstring
|
|
Removes any geometry associated with the feature.
|
|
|
|
.. seealso:: :py:func:`setGeometry`
|
|
|
|
.. seealso:: :py:func:`hasGeometry`
|
|
%End
|
|
|
|
void setFields( const QgsFields &fields, bool initAttributes = true );
|
|
%Docstring
|
|
Assigns a field map with the feature to allow attribute access by attribute name.
|
|
|
|
:param fields: The attribute fields which this feature holds
|
|
:param initAttributes: If ``True``, attributes are initialized. Clears any data previously assigned.
|
|
|
|
.. seealso:: :py:func:`fields`
|
|
%End
|
|
|
|
QgsFields fields() const;
|
|
%Docstring
|
|
Returns the field map associated with the feature.
|
|
|
|
.. seealso:: :py:func:`setFields`
|
|
%End
|
|
|
|
|
|
void setAttribute( const QString &name, const QVariant &value /GetWrapper/ );
|
|
%Docstring
|
|
Insert a value into attribute, by field ``name``.
|
|
|
|
Field map must be associated using :py:func:`~QgsFeature.setFields` before this method can be used.
|
|
|
|
Calling this method will automatically set the feature as valid (see :py:func:`~QgsFeature.isValid`).
|
|
|
|
Alternatively, in Python it is possible to directly set a field's value via the field's name:
|
|
|
|
.. code-block:: python
|
|
|
|
fields = QgsFields()
|
|
fields.append(QgsField('my_id', QVariant.Int))
|
|
fields.append(QgsField('name', QVariant.String))
|
|
feature = QgsFeature(fields)
|
|
|
|
# set the "name" field value
|
|
feature['name'] = "my name"
|
|
# set the "my_id" field value
|
|
feature['my_id'] = 55
|
|
|
|
:param name: The name of the field to set
|
|
:param value: The value to set
|
|
|
|
:raises KeyError: if the attribute name could not could not be matched.
|
|
|
|
.. seealso:: :py:func:`setFields`
|
|
%End
|
|
%MethodCode
|
|
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
|
|
if ( fieldIdx == -1 )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
{
|
|
if ( a1Wrapper == Py_None )
|
|
{
|
|
sipCpp->setAttribute( *a0, QVariant( QVariant::Int ) );
|
|
}
|
|
else
|
|
{
|
|
sipCpp->setAttribute( fieldIdx, *a1 );
|
|
}
|
|
}
|
|
%End
|
|
|
|
|
|
bool deleteAttribute( const QString &name );
|
|
%Docstring
|
|
Clear's an attribute's value by its field ``name``.
|
|
|
|
Field map must be associated using :py:func:`~QgsFeature.setFields` before this method can be used.
|
|
|
|
Alternatively, in Python it is possible to directly `del` an attribute via its name:
|
|
|
|
.. code-block:: python
|
|
|
|
fields = QgsFields()
|
|
fields.append(QgsField('my_id', QVariant.Int))
|
|
fields.append(QgsField('name', QVariant.String))
|
|
|
|
feature = QgsFeature(fields)
|
|
feature.setAttributes([11, 'my feature'])
|
|
|
|
# will print [11, 'my feature']
|
|
print(feature.attributes())
|
|
|
|
# clear the 'name' attribute
|
|
del feature['name']
|
|
|
|
# will now print [11, NULL]
|
|
print(feature.attributes())
|
|
|
|
:param name: The name of the field to clear
|
|
|
|
:raises KeyError: if attribute name could not be matched.
|
|
|
|
.. seealso:: :py:func:`setFields`
|
|
%End
|
|
%MethodCode
|
|
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
|
|
if ( fieldIdx == -1 )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
|
|
sipIsErr = 1;
|
|
sipRes = false;
|
|
}
|
|
else
|
|
{
|
|
sipCpp->deleteAttribute( fieldIdx );
|
|
sipRes = true;
|
|
}
|
|
%End
|
|
|
|
|
|
SIP_PYOBJECT attribute( const QString &name ) const;
|
|
%Docstring
|
|
Lookup attribute value by attribute ``name``.
|
|
|
|
Field map must be associated using :py:func:`~QgsFeature.setFields` before this method can be used.
|
|
|
|
Alternatively, in Python it is possible to directly retrieve a field's value via the field's name:
|
|
|
|
.. code-block:: python
|
|
|
|
fields = QgsFields()
|
|
fields.append(QgsField('my_id', QVariant.Int))
|
|
fields.append(QgsField('name', QVariant.String))
|
|
feature = QgsFeature(fields)
|
|
feature.setAttributes([11, 'my feature'])
|
|
|
|
# print the "name" field value
|
|
print(feature['name'])
|
|
# print the "my_id" field value
|
|
print(feature['my_id'])
|
|
|
|
:param name: The name of the attribute to get
|
|
|
|
:return: The value of the attribute
|
|
|
|
:raises KeyError: if the field is not found
|
|
|
|
.. seealso:: :py:func:`setFields`
|
|
%End
|
|
%MethodCode
|
|
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
|
|
if ( fieldIdx == -1 )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
{
|
|
QVariant *v = new QVariant( sipCpp->attribute( fieldIdx ) );
|
|
sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
|
|
}
|
|
%End
|
|
|
|
|
|
SIP_PYOBJECT attribute( int fieldIdx ) const;
|
|
%Docstring
|
|
Lookup attribute value from its index.
|
|
|
|
Alternatively, in Python it is possible to directly retrieve a field's value via its index:
|
|
|
|
.. code-block:: python
|
|
|
|
feature = QgsFeature()
|
|
feature.setAttributes([11, 'my feature', 55.5])
|
|
|
|
# will print 11
|
|
print(feature[0])
|
|
|
|
# will print 'my feature'
|
|
print(feature[1])
|
|
|
|
# will print 55.5
|
|
print(feature[2])
|
|
|
|
:param fieldIdx: The index of the attribute to get
|
|
|
|
:return: The value of the attribute
|
|
|
|
:raises KeyError: if the field is not found
|
|
|
|
.. seealso:: :py:func:`setFields`
|
|
%End
|
|
%MethodCode
|
|
{
|
|
if ( a0 < 0 || a0 >= sipCpp->attributes().count() )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
{
|
|
QVariant *v = new QVariant( sipCpp->attribute( a0 ) );
|
|
sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
|
|
}
|
|
}
|
|
%End
|
|
|
|
|
|
|
|
bool isUnsetValue( int fieldIdx ) const;
|
|
%Docstring
|
|
Returns ``True`` if the attribute at the specified index is an unset value.
|
|
|
|
:raises KeyError: if the field is not found
|
|
|
|
.. seealso:: :py:class:`QgsUnsetAttributeValue`
|
|
|
|
.. versionadded:: 3.28
|
|
%End
|
|
%MethodCode
|
|
{
|
|
if ( a0 < 0 || a0 >= sipCpp->attributes().count() )
|
|
{
|
|
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
else
|
|
{
|
|
sipRes = sipCpp->isUnsetValue( a0 );
|
|
}
|
|
}
|
|
%End
|
|
|
|
const QgsSymbol *embeddedSymbol() const;
|
|
%Docstring
|
|
Returns the feature's embedded symbology, or ``None`` if the feature has no embedded symbol.
|
|
|
|
.. versionadded:: 3.20
|
|
%End
|
|
|
|
void setEmbeddedSymbol( QgsSymbol *symbol /Transfer/ );
|
|
%Docstring
|
|
Sets the feature's embedded ``symbol``.
|
|
|
|
Ownership of ``symbol`` is transferred to the feature.
|
|
|
|
.. versionadded:: 3.20
|
|
%End
|
|
|
|
int fieldNameIndex( const QString &fieldName ) const;
|
|
%Docstring
|
|
Utility method to get attribute index from name.
|
|
|
|
Field map must be associated using :py:func:`~QgsFeature.setFields` before this method can be used.
|
|
|
|
:param fieldName: name of field to get attribute index of
|
|
|
|
:return: -1 if field does not exist or field map is not associated.
|
|
|
|
.. seealso:: :py:func:`setFields`
|
|
%End
|
|
|
|
int approximateMemoryUsage() const;
|
|
%Docstring
|
|
Returns the approximate RAM usage of the feature, in bytes.
|
|
|
|
This method takes into account the size of variable elements (strings,
|
|
geometry, ...), but the value returned should be considered as a lower
|
|
bound estimation.
|
|
|
|
.. versionadded:: 3.16
|
|
%End
|
|
|
|
operator QVariant() const;
|
|
|
|
}; // class QgsFeature
|
|
|
|
|
|
typedef QMap<qint64, QMap<int, QVariant> > QgsChangedAttributesMap;
|
|
|
|
|
|
typedef QMap<qint64, QgsGeometry> QgsGeometryMap;
|
|
|
|
typedef QList<QgsFeature> QgsFeatureList;
|
|
|
|
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgsfeature.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|