Thank you, Nyall. That works.

Simon

Am 05.06.2025 01:23, schrieb Nyall Dawson:

On Mon, 2 Jun 2025 at 19:16, Simon Gröchenig via QGIS-Developer
<[email protected]> wrote:

Hi,

how can I remove a layer variable with Python?

The following returns true, but does not work.

QgsExpressionContextUtils.layerScope(layer).removeVariable("variable_name")

That's cos it's just removing the variable from a copy of the layer's
expression context scope, not from the layer itself.

It's rather gross, but try
https://qgis.org/pyqgis/3.40/core/QgsExpressionContextUtils.html#qgis.core.QgsExpressionContextUtils.setLayerVariables
-- you'll need to first retrieve the existing variables via
https://qgis.org/pyqgis/3.40/core/QgsExpressionContextUtils.html#qgis.core.QgsExpressionContextUtils.layerScope
and then build a dictionary of the variables you want to keep by
iterating over https://qgis.org/pyqgis/3.40/core/QgsExpressionContextScope.html#qgis.core.QgsExpressionContextScope.variableNames

Hope that helps!
Nyall

Best regards
Simon

_____________________
Simon Gröchenig
GIS Support und Training
Treffling 73 - 9871 Seeboden - Österreich
Tel.: +43 699 11 22 31 22
Web: https://www.sgroe.at
E-Mail: [email protected]
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

--
_____________________
Simon Gröchenig
GIS Support und Training
Treffling 73 - 9871 Seeboden - Österreich
Tel.: +43 699 11 22 31 22
Web: https://www.sgroe.at
E-Mail: [email protected]
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to