Class: QgsMapThemeCollection¶
Container class that allows storage of map themes consisting of visible map layers and layer styles.
Class Hierarchy¶
Base classes¶
- class qgis.core.QgsMapThemeCollection[source]¶
Bases:
QObject- __init__(project: QgsProject | None = None)
Create map theme collection that handles themes of the given project.
- Parameters:
project (Optional[QgsProject] = None)
- class MapThemeLayerRecord[source]¶
Bases:
objectIndividual record of a visible layer in a map theme record.
QgsMapThemeCollection.MapThemeLayerRecord(l: Optional[QgsMapLayer] = None) Initialize layer record with a map layer - it will be stored as a weak pointer
QgsMapThemeCollection.MapThemeLayerRecord(a0: QgsMapThemeCollection.MapThemeLayerRecord)
- currentStyle: str¶
- expandedLayerNode: bool¶
- isVisible: bool¶
- layer(self) QgsMapLayer | None[source]¶
Returns map layer or
Noneif the layer does not exist anymore- Return type:
Optional[QgsMapLayer]
- setLayer(self, layer: QgsMapLayer | None)[source]¶
Sets the map layer for this record
- Parameters:
layer (Optional[QgsMapLayer])
- usingCurrentStyle: bool¶
- usingLegendItems: bool¶
- class MapThemeRecord[source]¶
Bases:
objectIndividual map theme record of visible layers and styles.
- addLayerRecord(self, record: QgsMapThemeCollection.MapThemeLayerRecord)[source]¶
Add a new record for a layer.
- Parameters:
- 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()returnsTrue. 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”Added 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()returnsTrue. 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”Added in version 3.2.
- Return type:
Set[str]
- hasCheckedStateInfo(self) bool[source]¶
Returns whether information about checked/unchecked state of groups has been recorded and thus whether
checkedGroupNodes()is valid.Added in version 3.10.1.
- Return type:
bool
- hasExpandedStateInfo(self) bool[source]¶
Returns whether information about expanded/collapsed state of nodes has been recorded and thus whether
expandedGroupNodes()and expandedLegendItems + expandedLayerNode from layer records are valid.Added 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:
- static readXml(element: QDomElement, project: QgsProject | None) QgsMapThemeCollection.MapThemeRecord[source]¶
Reads the map theme record from XML
- Parameters:
element (QDomElement) – DOM element
project (Optional[QgsProject]) – the QGIS project
See also
Added in version 3.42.
- Return type:
- removeLayerRecord(self, layer: QgsMapLayer | None)[source]¶
Removes a record for
layerif present.- Parameters:
layer (Optional[QgsMapLayer])
- setCheckedGroupNodes(self, checkedGroupNodes: Iterable[str | None])[source]¶
Sets a set of group identifiers for group nodes that should have checked state. See
checkedGroupNodes().Added in version 3.10.1.
- Parameters:
checkedGroupNodes (Iterable[Optional[str]])
- setExpandedGroupNodes(self, expandedGroupNodes: Iterable[str | None])[source]¶
Sets a set of group identifiers for group nodes that should have expanded state. See
expandedGroupNodes().Added in version 3.2.
- Parameters:
expandedGroupNodes (Iterable[Optional[str]])
- setHasCheckedStateInfo(self, hasInfo: bool)[source]¶
Sets whether the map theme contains valid checked/unchecked state of group nodes
Added in version 3.10.1.
- Parameters:
hasInfo (bool)
- setHasExpandedStateInfo(self, hasInfo: bool)[source]¶
Sets whether the map theme contains valid expanded/collapsed state of nodes
Added in version 3.2.
- Parameters:
hasInfo (bool)
- setLayerRecords(self, records: Iterable[QgsMapThemeCollection.MapThemeLayerRecord])[source]¶
Sets layer records for the theme.
- Parameters:
records (Iterable[QgsMapThemeCollection.MapThemeLayerRecord])
- applyTheme(self, name: str | None, root: QgsLayerTreeGroup | None, model: QgsLayerTreeModel | None)[source]¶
Apply theme given by its name and modify layer tree, current style of layers and checked legend items of passed layer tree model.
- Parameters:
name (Optional[str])
root (Optional[QgsLayerTreeGroup])
model (Optional[QgsLayerTreeModel])
- static createThemeFromCurrentState(root: QgsLayerTreeGroup | None, model: QgsLayerTreeModel | None) QgsMapThemeCollection.MapThemeRecord[source]¶
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).
- Parameters:
root (Optional[QgsLayerTreeGroup])
model (Optional[QgsLayerTreeModel])
- Return type:
- hasMapTheme(self, name: str | None) bool[source]¶
Returns whether a map theme with a matching name exists.
- Parameters:
name (Optional[str])
- Return type:
bool
- insert(self, name: str | None, state: QgsMapThemeCollection.MapThemeRecord)[source]¶
Inserts a new map theme to the collection.
See also
- Parameters:
name (Optional[str])
- signal mapThemeChanged[source]¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- signal mapThemeRenamed[source]¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- mapThemeState(self, name: str | None) QgsMapThemeCollection.MapThemeRecord[source]¶
Returns the recorded state of a map theme.
- Parameters:
name (Optional[str])
- Return type:
- mapThemeStyleOverrides(self, name: str | None) Dict[str, str]¶
Gets layer style overrides (for
QgsMapSettings) of the visible layers for given map theme.- Parameters:
name (Optional[str])
- Return type:
Dict[str, str]
- mapThemeVisibleLayerIds(self, name: str | None) List[str][source]¶
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.
- Parameters:
name (Optional[str])
- Return type:
List[str]
- mapThemeVisibleLayers(self, name: str | None) 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.
- Parameters:
name (Optional[str])
- Return type:
- mapThemes(self) List[str][source]¶
Returns a list of existing map theme names.
- Return type:
List[str]
- signal mapThemesChanged[source]¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- 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.See also
- Return type:
- 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.See also
- Return type:
- project(self) QgsProject | None[source]¶
Returns the
QgsProjecton which this map theme collection works.See also
See also
- Return type:
Optional[QgsProject]
- signal projectChanged[source]¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- readXml(self, doc: QDomDocument)[source]¶
Reads the map theme collection state from XML
- Parameters:
doc (QDomDocument) – DOM document
See also
- removeMapTheme(self, name: str | None)[source]¶
Removes an existing map theme from collection.
- Parameters:
name (Optional[str])
- renameMapTheme(self, name: str | None, newName: str | None) bool[source]¶
Renames the existing map theme called
nametonewName. ReturnsTrueif the rename was successful, orFalseif it failed (e.g. due to a duplicate name fornewName).Added in version 3.14.
- Parameters:
name (Optional[str])
newName (Optional[str])
- Return type:
bool
- setProject(self, project: QgsProject | None)[source]¶
Sets the
projecton which this map theme collection works.See also
See also
- Parameters:
project (Optional[QgsProject])
- update(self, name: str | None, state: QgsMapThemeCollection.MapThemeRecord)[source]¶
Updates a map theme within the collection.
- Parameters:
name (Optional[str]) – name of map theme to update
state (QgsMapThemeCollection.MapThemeRecord) – map theme record to replace existing map theme
See also