Subgroup: Layout

Class: QgsLayoutItemAttributeTable

class qgis.core.QgsLayoutItemAttributeTable(layout: QgsLayout)

Bases: qgis._core.QgsLayoutTable

Constructor for QgsLayoutItemAttributeTable, attached to the specified layout.

Ownership is transferred to the layout.

A layout table subclass that displays attributes from a vector layer.

New in version 3.0: Methods

calculateMaxColumnWidths
calculateMaxRowHeights
childEvent
connectNotify
contentsContainsRow
create Returns a new QgsLayoutItemAttributeTable for the specified parent layout.
createExpressionContext
customEvent
disconnectNotify
displayName
displayOnlyVisibleFeatures Returns true if the table is set to show only features visible on a corresponding map item.
drawHorizontalGridLines
featureFilter Returns the current expression used to filter features for the table.
filterFeatures Returns true if a feature filter is active on the attribute table.
filterToAtlasFeature Returns true if the table is set to only show features which intersect the current atlas feature.
finalizeRestoreFromXml
icon
isSignalConnected
map Returns the layout map whose extents are controlling the features shown in the table.
maximumNumberOfFeatures Returns the maximum number of features to be shown by the table.
readObjectPropertiesFromElement
readPropertiesFromElement
recalculateTableSize
receivers
refreshDataDefinedProperty
relationId Returns the relation id which the table displays child features from.
resetColumns Resets the attribute table’s columns to match the vector layer’s fields.
rowRange
rowsVisible
sender
senderSignalIndex
setDisplayOnlyVisibleFeatures Sets the attribute table to only show features which are visible in a map item.
setDisplayedFields Sets the attributes to display in the table.
setFeatureFilter Sets the expression used for filtering features in the table.
setFilterFeatures Sets whether the feature filter is active for the attribute table.
setFilterToAtlasFeature Sets attribute table to only show features which intersect the current atlas feature.
setMap Sets a layout map to use to limit the extent of features shown in the attribute table.
setMaximumNumberOfFeatures Sets the maximum number of features shown by the table.
setRelationId Sets the relation id from which to display child features
setSource Sets the source for attributes to show in table body.
setUniqueRowsOnly Sets attribute table to only show unique rows.
setVectorLayer Sets the vector layer from which to display feature attributes.
setWrapString Sets a string to wrap the contents of the table cells by.
source Returns the source for attributes shown in the table body.
sourceLayer Returns the source layer for the table, considering the table source mode.
timerEvent
totalHeight
totalWidth
type
uniqueRowsOnly Returns true if the table is set to show only unique rows.
vectorLayer Returns the vector layer the attribute table is currently using.
wrapString Returns the string used to wrap the contents of the table cells by.
writeObjectPropertiesToElement
writePropertiesToElement

Signals

Attributes

AtlasFeature
LayerAttributes
RelationChildren
AtlasFeature = 1
class ContentSource

Bases: int

LayerAttributes = 0
RelationChildren = 2
calculateMaxColumnWidths()
calculateMaxRowHeights()
childEvent()
connectNotify()
contentsContainsRow()
create(layout: QgsLayout) → QgsLayoutItemAttributeTable

Returns a new QgsLayoutItemAttributeTable for the specified parent layout.

createExpressionContext(self) → QgsExpressionContext
customEvent()
disconnectNotify()
displayName(self) → str
displayOnlyVisibleFeatures(self) → bool

Returns true if the table is set to show only features visible on a corresponding map item.

See also

map()

drawHorizontalGridLines()
featureFilter(self) → str

Returns the current expression used to filter features for the table. The filter is only active if filterFeatures() is true.

See also

filterFeatures()

filterFeatures(self) → bool

Returns true if a feature filter is active on the attribute table.

See also

featureFilter()

filterToAtlasFeature(self) → bool

Returns true if the table is set to only show features which intersect the current atlas feature.

finalizeRestoreFromXml(self)
icon(self) → QIcon
isSignalConnected()
map(self) → QgsLayoutItemMap

Returns the layout map whose extents are controlling the features shown in the table. The extents of the map are only used if displayOnlyVisibleFeatures() is true.

See also

setMap()

maximumNumberOfFeatures(self) → int

Returns the maximum number of features to be shown by the table.

readObjectPropertiesFromElement()
readPropertiesFromElement(self, itemElem: QDomElement, doc: QDomDocument, context: QgsReadWriteContext) → bool
recalculateTableSize()
receivers()
refreshDataDefinedProperty(self, property: QgsLayoutObject.DataDefinedProperty = QgsLayoutObject.AllProperties)
relationId(self) → str

Returns the relation id which the table displays child features from.

See also

setRelationId()

See also

source()

Note

Only used if table source() is set to RelationChildren.

resetColumns(self)

Resets the attribute table’s columns to match the vector layer’s fields.

See also

setVectorLayer()

rowRange()
rowsVisible()
sender()
senderSignalIndex()
setDisplayOnlyVisibleFeatures(self, visibleOnly: bool)

Sets the attribute table to only show features which are visible in a map item. Changing this setting forces the table to refetch features from its vector layer, and may result in the table changing size to accommodate the new displayed feature attributes.

See also

setMap()

setDisplayedFields(self, fields: Iterable[str], refresh: bool = True)

Sets the attributes to display in the table.

Parameters:
  • fields – list of fields names from the vector layer to show. Set to an empty list to show all feature attributes.
  • refresh – set to true to force the table to refetch features from its vector layer and immediately update the display of the table. This may result in the table changing size to accommodate the new displayed feature attributes.
setFeatureFilter(self, expression: str)

Sets the expression used for filtering features in the table. The filter is only active if filterFeatures() is set to true. Changing this setting forces the table to refetch features from its vector layer, and may result in the table changing size to accommodate the new displayed feature attributes.

See also

featureFilter()

setFilterFeatures(self, filter: bool)

Sets whether the feature filter is active for the attribute table. Changing this setting forces the table to refetch features from its vector layer, and may result in the table changing size to accommodate the new displayed feature attributes.

See also

filterFeatures()

setFilterToAtlasFeature(self, filterToAtlas: bool)

Sets attribute table to only show features which intersect the current atlas feature.

setMap(self, map: QgsLayoutItemMap)

Sets a layout map to use to limit the extent of features shown in the attribute table. This setting only has an effect if setDisplayOnlyVisibleFeatures is set to true. Changing the map forces the table to refetch features from its vector layer, and may result in the table changing size to accommodate the new displayed feature attributes.

See also

map()

setMaximumNumberOfFeatures(self, features: int)

Sets the maximum number of features shown by the table. Changing this setting may result in the attribute table changing its size to accommodate the new number of rows, and requires the table to refetch features from its vector layer.

setRelationId(self, id: str)

Sets the relation id from which to display child features

See also

relationId()

See also

setSource()

Note

Only used if table source() is set to RelationChildren.

setSource(self, source: QgsLayoutItemAttributeTable.ContentSource)

Sets the source for attributes to show in table body.

See also

source()

setUniqueRowsOnly(self, uniqueOnly: bool)

Sets attribute table to only show unique rows.

Set uniqueOnly to true to show only unique rows. Duplicate rows will be stripped from the table.

See also

uniqueRowsOnly()

setVectorLayer(self, layer: QgsVectorLayer)

Sets the vector layer from which to display feature attributes.

This is only considered if the table source() is LayerAttributes.

See also

vectorLayer()

setWrapString(self, wrapString: str)

Sets a string to wrap the contents of the table cells by. Occurrences of this string will be replaced by a line break.

Parameters:wrapString – string to replace with line break

See also

wrapString()

source(self) → QgsLayoutItemAttributeTable.ContentSource

Returns the source for attributes shown in the table body.

See also

setSource()

sourceLayer(self) → QgsVectorLayer

Returns the source layer for the table, considering the table source mode. For example, if the table is set to atlas feature mode, then the source layer will be the atlas coverage layer. If the table is set to layer attributes mode, then the source layer will be the user specified vector layer.

timerEvent()
totalHeight()
totalWidth()
type(self) → int
uniqueRowsOnly(self) → bool

Returns true if the table is set to show only unique rows.

vectorLayer(self) → QgsVectorLayer

Returns the vector layer the attribute table is currently using.

This is only considered if the table source() is LayerAttributes.

See also

setVectorLayer()

See also

sourceLayer()

wrapString(self) → str

Returns the string used to wrap the contents of the table cells by. Occurrences of this string will be replaced by a line break.

See also

setWrapString()

writeObjectPropertiesToElement()
writePropertiesToElement(self, elem: QDomElement, doc: QDomDocument, context: QgsReadWriteContext) → bool