Class: QgsAttributeTableModel

class qgis.gui.QgsAttributeTableModel(layerCache: QgsVectorLayerCache, parent: QObject = None)

Bases: PyQt5.QtCore.QAbstractTableModel

Constructor

Parameters
  • layerCache – A layer cache to use as backend

  • parent – The parent QObject (owner)

A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a QAbstractItemView.

Is able to generate editor widgets for its QModelIndexes as well. Is mostly referred to as “master model” within this doc and the source.

see <a href=”http://doc.qt.digia.com/qt/model-view-programming.html”>Qt Model View Programming</a>

Methods

beginInsertColumns

beginInsertRows

beginMoveColumns

beginMoveRows

beginRemoveColumns

beginRemoveRows

beginResetModel

changePersistentIndex

changePersistentIndexList

childEvent

columnCount

Returns the number of columns

connectNotify

createIndex

customEvent

data

Returns data on the given index

decodeData

disconnectNotify

editorContext

Returns the context in which this table is shown.

encodeData

endInsertColumns

endInsertRows

endMoveColumns

endMoveRows

endRemoveColumns

endRemoveRows

endResetModel

executeAction

Execute an action

executeMapLayerAction

Execute a QgsMapLayerAction

extraColumns

Empty extra columns to announce from this model.

feature

Returns the feature attributes at given model index

fieldCol

Gets column from field index

fieldConditionalStyleChanged

Handles updating the model when the conditional style for a field changes.

fieldIdx

Gets field index from column

flags

Returns item flags for the index

headerData

Returns header data

idToIndex

param id

idToIndexList

param id

idToRow

Maps feature id to table row

isSignalConnected

layer

Returns the layer this model uses as backend.

layerCache

Returns the layer cache this model uses as backend.

loadLayer

Loads the layer into the model Preferably to be called, before using this model as source for any other proxy model

persistentIndexList

prefetchColumnData

Caches the entire data for one column.

prefetchSortData

Prefetches the entire data for an expression.

receivers

reload

Reloads the model data between indices

removeRows

Remove rows

request

Gets the the feature request

resetInternalData

resetModel

Resets the model

rowCount

Returns the number of rows

rowToId

Maps row to feature id

sender

senderSignalIndex

setData

Updates data on given index

setEditorContext

Sets the context in which this table is shown.

setExtraColumns

Empty extra columns to announce from this model.

setRequest

Set a request that will be used to fill this attribute table model.

sortCacheExpression

The expression which was used to fill the sorting cache at index cacheIndex.

swapRows

Swaps two rows

timerEvent

Signals

finished

finished(self) [signal]

modelChanged

Model has been changed [signal]

Attributes

FeatureIdRole

FieldIndexRole

SortRole

UserRole

FeatureIdRole = 256
FieldIndexRole = 257
class Role

Bases: int

SortRole = 259
UserRole = 258
QgsAttributeTableModel.beginInsertColumns(self, QModelIndex, int, int)
QgsAttributeTableModel.beginInsertRows(self, QModelIndex, int, int)
QgsAttributeTableModel.beginMoveColumns(self, QModelIndex, int, int, QModelIndex, int) -> bool
QgsAttributeTableModel.beginMoveRows(self, QModelIndex, int, int, QModelIndex, int) -> bool
QgsAttributeTableModel.beginRemoveColumns(self, QModelIndex, int, int)
QgsAttributeTableModel.beginRemoveRows(self, QModelIndex, int, int)
beginResetModel(self)
QgsAttributeTableModel.changePersistentIndex(self, QModelIndex, QModelIndex)
changePersistentIndexList(self, Iterable[QModelIndex], Iterable[QModelIndex])
childEvent(self, QChildEvent)
columnCount(self, parent: QModelIndex = QModelIndex()) int

Returns the number of columns

Parameters

parent (QModelIndex = QModelIndex()) – parent index

Return type

int

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

Returns data on the given index

Parameters
  • index (QModelIndex) – model index

  • role (int) – data role

Return type

Any

QgsAttributeTableModel.decodeData(self, int, int, QModelIndex, QDataStream) -> bool
disconnectNotify(self, QMetaMethod)
editorContext(self) QgsAttributeEditorContext

Returns the context in which this table is shown. Will be forwarded to any editor widget created when editing data on this model.

Return type

QgsAttributeEditorContext

Returns

The context

encodeData(self, Iterable[QModelIndex], QDataStream)
endInsertColumns(self)
endInsertRows(self)
endMoveColumns(self)
endMoveRows(self)
endRemoveColumns(self)
endRemoveRows(self)
endResetModel(self)
executeAction(self, action: QUuid, idx: QModelIndex)

Execute an action

Parameters
  • action (QUuid) –

  • idx (QModelIndex) –

executeMapLayerAction(self, action: QgsMapLayerAction, idx: QModelIndex)

Execute a QgsMapLayerAction

Parameters
extraColumns(self) int

Empty extra columns to announce from this model. Any extra columns need to be implemented by proxy models in front of this model.

Return type

int

feature(self, idx: QModelIndex) QgsFeature

Returns the feature attributes at given model index

Return type

QgsFeature

Returns

feature attributes at given model index

Parameters

idx (QModelIndex) –

fieldCol(self, idx: int) int

Gets column from field index

Parameters

idx (int) –

Return type

int

fieldConditionalStyleChanged(self, fieldName: str)

Handles updating the model when the conditional style for a field changes.

Parameters

fieldName (str) – name of field whose conditional style has changed

New in version 2.12.

fieldIdx(self, col: int) int

Gets field index from column

Parameters

col (int) –

Return type

int

finished

finished(self) [signal]

flags(self, index: QModelIndex) Qt.ItemFlags

Returns item flags for the index

Parameters

index (QModelIndex) – model index

Return type

Qt.ItemFlags

headerData(self, section: int, orientation: Qt.Orientation, role: int = Qt.DisplayRole) Any

Returns header data

Parameters
  • section (int) – required section

  • orientation (Qt.Orientation) – horizontal or vertical orientation

  • role (int = Qt.DisplayRole) – data role

Return type

Any

idToIndex(self, id: int) QModelIndex
Parameters

id (int) –

Return type

QModelIndex

idToIndexList(self, id: int) List[QModelIndex]
Parameters

id (int) –

Return type

List[QModelIndex]

idToRow(self, id: int) int

Maps feature id to table row

Parameters

id (int) – feature id

Return type

int

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

Returns the layer this model uses as backend. Retrieved from the layer cache.

Return type

QgsVectorLayer

layerCache(self) QgsVectorLayerCache

Returns the layer cache this model uses as backend.

Return type

QgsVectorLayerCache

loadLayer(self)

Loads the layer into the model Preferably to be called, before using this model as source for any other proxy model

modelChanged

Model has been changed [signal]

persistentIndexList(self) List[QModelIndex]
prefetchColumnData(self, column: int)

Caches the entire data for one column. This should be called prior to sorting, so the data does not have to be fetched for every single comparison. Specify -1 as column to invalidate the cache

Parameters

column (int) – The column index of the field to catch

prefetchSortData(self, expression: str, cacheIndex: int = 0)

Prefetches the entire data for an expression. Based on this cached information the sorting can later be done in a performant way. A cacheIndex can be specified if multiple caches should be filled. In this case, the caches will be available as QgsAttributeTableModel.SortRole + cacheIndex.

Parameters
  • expression (str) –

  • cacheIndex (int = 0) –

receivers(self, PYQT_SIGNAL) int
reload(self, index1: QModelIndex, index2: QModelIndex)

Reloads the model data between indices

Parameters
  • index1 (QModelIndex) – start index

  • index2 (QModelIndex) – end index

removeRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()) bool

Remove rows

Parameters
  • row (int) –

  • count (int) –

  • parent (QModelIndex = QModelIndex()) –

Return type

bool

request(self) QgsFeatureRequest

Gets the the feature request

Return type

QgsFeatureRequest

resetInternalData(self)
resetModel(self)

Resets the model

Alias to loadLayer()

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

Returns the number of rows

Parameters

parent (QModelIndex = QModelIndex()) – parent index

Return type

int

rowToId(self, row: int) int

Maps row to feature id

Parameters

row (int) – row number

Return type

int

sender(self) QObject
senderSignalIndex(self) int
setData(self, index: QModelIndex, value: Any, role: int = Qt.EditRole) bool

Updates data on given index

Parameters
  • index (QModelIndex) – model index

  • value (Any) – new data value

  • role (int = Qt.EditRole) – data role

Return type

bool

setEditorContext(self, context: QgsAttributeEditorContext)

Sets the context in which this table is shown. Will be forwarded to any editor widget created when editing data on this model.

Parameters

context (QgsAttributeEditorContext) – The context

setExtraColumns(self, extraColumns: int)

Empty extra columns to announce from this model. Any extra columns need to be implemented by proxy models in front of this model.

Parameters

extraColumns (int) –

setRequest(self, request: QgsFeatureRequest)

Set a request that will be used to fill this attribute table model. In contrast to a filter, the request will constrain the data shown without the possibility to dynamically adjust it.

Parameters

request (QgsFeatureRequest) – The request to use to fill this table model.

sortCacheExpression(self, cacheIndex: int = 0) str

The expression which was used to fill the sorting cache at index cacheIndex.

Parameters

cacheIndex (int = 0) –

Return type

str

swapRows(self, a: int, b: int)

Swaps two rows

Parameters
  • a (int) – first row

  • b (int) – second row

timerEvent(self, QTimerEvent)