Class: QgsMapThemeCollection

class qgis.core.QgsMapThemeCollection(project: QgsProject = None)

Bases: PyQt5.QtCore.QObject

Create map theme collection that handles themes of the given project.

Container class that allows storage of map themes consisting of visible map layers and layer styles.

New in version 2.12:

Methods

applyTheme

Apply theme given by its name and modify layer tree, current style of layers and checked legend items of passed layer tree model.

childEvent

clear

Removes all map themes from the collection.

connectNotify

createThemeFromCurrentState

Static method to create theme from the current state of layer visibilities in layer tree, current style of layers and check state of legend items (from a layer tree model).

customEvent

disconnectNotify

hasMapTheme

Returns whether a map theme with a matching name exists.

insert

Inserts a new map theme to the collection.

isSignalConnected

mapThemeState

Returns the recorded state of a map theme.

mapThemeStyleOverrides

Gets layer style overrides (for QgsMapSettings) of the visible layers for given map theme.

mapThemeVisibleLayerIds

Returns the list of layer IDs that are visible for the specified map theme.

mapThemeVisibleLayers

Returns the list of layers that are visible for the specified map theme.

mapThemes

Returns a list of existing map theme names.

masterLayerOrder

Returns the master layer order (this will always match the project's QgsProject.layerOrder() ).

masterVisibleLayers

Returns the master list of visible layers.

project

The QgsProject on which this map theme collection works.

readXml

Reads the map theme collection state from XML

receivers

removeMapTheme

Removes an existing map theme from collection.

renameMapTheme

Renames the existing map theme called name to newName.

sender

senderSignalIndex

setProject

copydoc project()

timerEvent

update

Updates a map theme within the collection.

writeXml

Writes the map theme collection state to XML.

Signals

mapThemeChanged

Emitted when a map theme changes definition.

mapThemeRenamed

Emitted when a map theme within the collection is renamed.

mapThemesChanged

Emitted when map themes within the collection are changed.

projectChanged

Emitted when the project changes

class MapThemeLayerRecord(l: QgsMapLayer = None)

Bases: sip.wrapper

Initialize layer record with a map layer - it will be stored as a weak pointer

QgsMapThemeCollection.MapThemeLayerRecord(QgsMapThemeCollection.MapThemeLayerRecord)

Individual record of a visible layer in a map theme record.

New in version 3.0.

checkedLegendItems
currentStyle
expandedLayerNode
expandedLegendItems
isVisible
layer(self) QgsMapLayer

Returns map layer or None if the layer does not exist anymore

Return type

QgsMapLayer

setLayer(self, layer: QgsMapLayer)

Sets the map layer for this record

Parameters

layer (QgsMapLayer) –

usingCurrentStyle
usingLegendItems
class MapThemeRecord

Bases: sip.wrapper

Individual map theme record of visible layers and styles.

New in version 3.0.

addLayerRecord(self, record: QgsMapThemeCollection.MapThemeLayerRecord)

Add a new record for a layer.

Parameters

record (QgsMapThemeCollection.MapThemeLayerRecord) –

checkedGroupNodes(self) Set[str]

Returns a set of group identifiers for group nodes that should have checked state (other group nodes should be unchecked). The returned value is valid only when hasCheckedStateInfo() returns True. Group identifiers are built using group names, a sub-group name is prepended by parent group’s identifier and a forward slash, e.g. “level1/level2”

New in version 3.10.1.

Return type

Set[str]

expandedGroupNodes(self) Set[str]

Returns a set of group identifiers for group nodes that should have expanded state (other group nodes should be collapsed). The returned value is valid only when hasExpandedStateInfo() returns True. Group identifiers are built using group names, a sub-group name is prepended by parent group’s identifier and a forward slash, e.g. “level1/level2”

New in version 3.2.

Return type

Set[str]

hasExpandedStateInfo(self) bool

Returns whether information about expanded/collapsed state of nodes has been recorded and thus whether expandedGroupNodes() and expandedLegendItems + expandedLayerNode from layer records are valid.

New in version 3.2.

Return type

bool

layerRecords(self) List[QgsMapThemeCollection.MapThemeLayerRecord]

Returns a list of records for all visible layer belonging to the theme.

Return type

List[QgsMapThemeCollection.MapThemeLayerRecord]

removeLayerRecord(self, layer: QgsMapLayer)

Removes a record for layer if present.

Parameters

layer (QgsMapLayer) –

setCheckedGroupNodes(self, checkedGroupNodes: Iterable[str])

Sets a set of group identifiers for group nodes that should have checked state. See checkedGroupNodes().

New in version 3.10.1.

Parameters

checkedGroupNodes (Iterable[str]) –

setExpandedGroupNodes(self, expandedGroupNodes: Iterable[str])

Sets a set of group identifiers for group nodes that should have expanded state. See expandedGroupNodes().

New in version 3.2.

Parameters

expandedGroupNodes (Iterable[str]) –

setHasExpandedStateInfo(self, hasInfo: bool)

Sets whether the map theme contains valid expanded/collapsed state of nodes

New in version 3.2.

Parameters

hasInfo (bool) –

setLayerRecords(self, records: Iterable[QgsMapThemeCollection.MapThemeLayerRecord])

Sets layer records for the theme.

Parameters

records (Iterable[QgsMapThemeCollection.MapThemeLayerRecord]) –

applyTheme(self, name: str, root: QgsLayerTreeGroup, model: QgsLayerTreeModel)

Apply theme given by its name and modify layer tree, current style of layers and checked legend items of passed layer tree model.

New in version 3.0.

Parameters
childEvent(self, QChildEvent)
clear(self)

Removes all map themes from the collection.

connectNotify(self, QMetaMethod)
createThemeFromCurrentState(root: QgsLayerTreeGroup, model: QgsLayerTreeModel) QgsMapThemeCollection.MapThemeRecord

Static method to create theme from the current state of layer visibilities in layer tree, current style of layers and check state of legend items (from a layer tree model).

New in version 3.0.

Parameters
Return type

QgsMapThemeCollection.MapThemeRecord

customEvent(self, QEvent)
disconnectNotify(self, QMetaMethod)
hasMapTheme(self, name: str) bool

Returns whether a map theme with a matching name exists.

New in version 3.0.

Parameters

name (str) –

Return type

bool

insert(self, name: str, state: QgsMapThemeCollection.MapThemeRecord)

Inserts a new map theme to the collection.

See also

update()

Parameters
isSignalConnected(self, QMetaMethod) bool
mapThemeChanged

Emitted when a map theme changes definition.

New in version 3.0: [signal]

Parameters

theme (str) –

mapThemeRenamed

Emitted when a map theme within the collection is renamed.

New in version 3.14: [signal]

Parameters
  • name (str) –

  • newName (str) –

mapThemeState(self, name: str) QgsMapThemeCollection.MapThemeRecord

Returns the recorded state of a map theme.

New in version 3.0.

Parameters

name (str) –

Return type

QgsMapThemeCollection.MapThemeRecord

mapThemeStyleOverrides(self, name: str) Dict[str, str]

Gets layer style overrides (for QgsMapSettings) of the visible layers for given map theme.

New in version 3.0.

Parameters

name (str) –

Return type

Dict[str, str]

mapThemeVisibleLayerIds(self, name: str) List[str]

Returns the list of layer IDs that are visible for the specified map theme.

Note

The order of the returned list is not guaranteed to reflect the order of layers in the canvas.

New in version 3.0.

Parameters

name (str) –

Return type

List[str]

mapThemeVisibleLayers(self, name: str) List[QgsMapLayer]

Returns the list of layers that are visible for the specified map theme.

Note

The order of the returned list is not guaranteed to reflect the order of layers in the canvas.

New in version 3.0.

Parameters

name (str) –

Return type

List[QgsMapLayer]

mapThemes(self) List[str]

Returns a list of existing map theme names.

New in version 3.0.

Return type

List[str]

mapThemesChanged

Emitted when map themes within the collection are changed.

New in version 3.0: [signal]

masterLayerOrder(self) List[QgsMapLayer]

Returns the master layer order (this will always match the project’s QgsProject.layerOrder() ). All map themes will maintain the same layer order as the master layer order.

New in version 3.0.

Return type

List[QgsMapLayer]

masterVisibleLayers(self) List[QgsMapLayer]

Returns the master list of visible layers. The order of returned layers will always match those of masterLayerOrder(), but the returned layers are filtered to only include those visible in the project’s layer tree.

New in version 3.0.

Return type

List[QgsMapLayer]

project(self) QgsProject

The QgsProject on which this map theme collection works.

New in version 3.0.

Return type

QgsProject

projectChanged

Emitted when the project changes

copydoc project()

New in version 3.0: [signal]

readXml(self, doc: QDomDocument)

Reads the map theme collection state from XML

Parameters

doc (QDomDocument) – DOM document

See also

writeXml()

receivers(self, PYQT_SIGNAL) int
removeMapTheme(self, name: str)

Removes an existing map theme from collection.

New in version 3.0.

Parameters

name (str) –

renameMapTheme(self, name: str, newName: str) bool

Renames the existing map theme called name to newName. Returns True if the rename was successful, or False if it failed (e.g. due to a duplicate name for newName).

New in version 3.14.

Parameters
  • name (str) –

  • newName (str) –

Return type

bool

sender(self) QObject
senderSignalIndex(self) int
setProject(self, project: QgsProject)

copydoc project()

New in version 3.0.

Parameters

project (QgsProject) –

timerEvent(self, QTimerEvent)
update(self, name: str, state: QgsMapThemeCollection.MapThemeRecord)

Updates a map theme within the collection.

Parameters

See also

insert()

writeXml(self, doc: QDomDocument)

Writes the map theme collection state to XML.

Parameters

doc (QDomDocument) – DOM document

See also

readXml()