Class: QgsFieldModel

class qgis.core.QgsFieldModel

Bases: PyQt5.QtCore.QAbstractItemModel

The QgsFieldModel class is a model to display the list of fields in widgets (optionally associated with a vector layer). If allowed, expressions might be added to the end of the model. It can be associated with a QgsMapLayerModel to dynamically display a layer and its fields.

New in version 2.3.

QgsFieldModel(parent: QObject = None) Constructor for QgsFieldModel - creates a model to display the fields of a given layer.

Methods

allowEmptyFieldName

Returns True if the model allows the empty field ("not set") choice.

allowExpression

Returns True if the model allows custom expressions to be created and displayed.

beginInsertColumns

beginInsertRows

beginMoveColumns

beginMoveRows

beginRemoveColumns

beginRemoveRows

beginResetModel

changePersistentIndex

changePersistentIndexList

childEvent

columnCount

param parent:

connectNotify

createIndex

customEvent

data

param index:

decodeData

disconnectNotify

encodeData

endInsertColumns

endInsertRows

endMoveColumns

endMoveRows

endRemoveColumns

endRemoveRows

endResetModel

fieldToolTip

Returns a HTML formatted tooltip string for a field, containing details like the field name, alias and type.

fieldToolTipExtended

Returns a HTML formatted tooltip string for a field, containing details like the field name, alias, type and expression.

fields

Returns the fields currently shown in the model.

index

param row:

indexFromName

Returns the index corresponding to a given fieldName.

isField

Returns True if a string represents a field reference, or False if it is an expression consisting of more than direct field reference.

isSignalConnected

layer

Returns the layer associated with the model.

parent

param child:

persistentIndexList

receivers

removeExpression

Removes any custom expression from the model.

resetInternalData

rowCount

param parent:

sender

senderSignalIndex

setAllowEmptyFieldName

Sets whether an optional empty field ("not set") option is present in the model.

setAllowExpression

Sets whether custom expressions are accepted and displayed in the model.

setExpression

Sets a single expression to be added after the fields at the end of the model.

setFields

Manually sets the fields to use for the model.

setLayer

Set the layer from which fields are displayed.

timerEvent

updateModel

Called when the model must be updated.

Attributes

EditorWidgetType

ExpressionRole

ExpressionValidityRole

FieldIndexRole

FieldIsWidgetEditable

FieldNameRole

FieldOriginRole

FieldTypeRole

IsEmptyRole

IsExpressionRole

JoinedFieldIsEditable

EditorWidgetType = 265
ExpressionRole = 259
ExpressionValidityRole = 261
FieldIndexRole = 258
FieldIsWidgetEditable = 267
FieldNameRole = 257
FieldOriginRole = 263
class FieldRoles

Bases: int

FieldTypeRole = 262
IsEmptyRole = 264
IsExpressionRole = 260
JoinedFieldIsEditable = 266
allowEmptyFieldName(self) bool

Returns True if the model allows the empty field (“not set”) choice.

New in version 3.0.

Return type:

bool

allowExpression(self) bool

Returns True if the model allows custom expressions to be created and displayed.

Return type:

bool

QgsFieldModel.beginInsertColumns(self, QModelIndex, int, int)
QgsFieldModel.beginInsertRows(self, QModelIndex, int, int)
QgsFieldModel.beginMoveColumns(self, QModelIndex, int, int, QModelIndex, int) -> bool
QgsFieldModel.beginMoveRows(self, QModelIndex, int, int, QModelIndex, int) -> bool
QgsFieldModel.beginRemoveColumns(self, QModelIndex, int, int)
QgsFieldModel.beginRemoveRows(self, QModelIndex, int, int)
beginResetModel(self)
QgsFieldModel.changePersistentIndex(self, QModelIndex, QModelIndex)
changePersistentIndexList(self, Iterable[QModelIndex], Iterable[QModelIndex])
childEvent(self, QChildEvent)
columnCount(self, parent: QModelIndex) int
Parameters:

parent (QModelIndex) –

Return type:

int

connectNotify(self, QMetaMethod)
QgsFieldModel.createIndex(self, int, int, object: object = 0) -> QModelIndex
customEvent(self, QEvent)
data(self, index: QModelIndex, role: int) Any
Parameters:
  • index (QModelIndex) –

  • role (int) –

Return type:

Any

QgsFieldModel.decodeData(self, int, int, QModelIndex, QDataStream) -> bool
disconnectNotify(self, QMetaMethod)
encodeData(self, Iterable[QModelIndex], QDataStream)
endInsertColumns(self)
endInsertRows(self)
endMoveColumns(self)
endMoveRows(self)
endRemoveColumns(self)
endRemoveRows(self)
endResetModel(self)
fieldToolTip(field: QgsField) str

Returns a HTML formatted tooltip string for a field, containing details like the field name, alias and type.

New in version 3.0.

Parameters:

field (QgsField) –

Return type:

str

fieldToolTipExtended(field: QgsField, layer: QgsVectorLayer) str

Returns a HTML formatted tooltip string for a field, containing details like the field name, alias, type and expression.

New in version 3.14.

Parameters:
Return type:

str

fields(self) QgsFields

Returns the fields currently shown in the model.

This will either be fields from the associated layer() or the fields manually set by a call to setFields().

New in version 3.14.

Return type:

QgsFields

index(self, row: int, column: int, parent: QModelIndex = QModelIndex()) QModelIndex
Parameters:
  • row (int) –

  • column (int) –

  • parent (QModelIndex = QModelIndex()) –

Return type:

QModelIndex

indexFromName(self, fieldName: str) QModelIndex

Returns the index corresponding to a given fieldName.

Parameters:

fieldName (str) –

Return type:

QModelIndex

isField(self, expression: str) bool

Returns True if a string represents a field reference, or False if it is an expression consisting of more than direct field reference.

Parameters:

expression (str) –

Return type:

bool

isSignalConnected(self, QMetaMethod) bool
layer(self) QgsVectorLayer

Returns the layer associated with the model.

See also

setLayer()

Return type:

QgsVectorLayer

parent(self, child: QModelIndex) QModelIndex
Parameters:

child (QModelIndex) –

Return type:

QModelIndex

persistentIndexList(self) List[QModelIndex]
receivers(self, PYQT_SIGNAL) int
removeExpression(self)

Removes any custom expression from the model.

See also

setExpression()

resetInternalData(self)
rowCount(self, parent: QModelIndex = QModelIndex()) int
Parameters:

parent (QModelIndex = QModelIndex()) –

Return type:

int

sender(self) QObject
senderSignalIndex(self) int
setAllowEmptyFieldName(self, allowEmpty: bool)

Sets whether an optional empty field (“not set”) option is present in the model.

New in version 3.0.

Parameters:

allowEmpty (bool) –

setAllowExpression(self, allowExpression: bool)

Sets whether custom expressions are accepted and displayed in the model.

See also

setExpression()

Parameters:

allowExpression (bool) –

setExpression(self, expression: str)

Sets a single expression to be added after the fields at the end of the model.

Parameters:

expression (str) –

setFields(self, fields: QgsFields)

Manually sets the fields to use for the model.

This method should only be used when the model ISN’T associated with a layer() and needs to show the fields from an arbitrary field collection instead. Calling setFields() will automatically clear any existing layer().

See also

fields()

New in version 3.14.

Parameters:

fields (QgsFields) –

setLayer(self, layer: QgsVectorLayer)

Set the layer from which fields are displayed.

See also

layer()

Parameters:

layer (QgsVectorLayer) –

timerEvent(self, QTimerEvent)
updateModel(self)

Called when the model must be updated.