我想使用Python控制台更改用户定义的项目变量(可以在项目设置|变量中手动编辑)的值。我在QgsExpressionContextScope类中跟踪了setVariable()函数,但实际上并未成功更改项目设置中的变量。到目前为止,我的代码:
iface.mapCanvas().mapSettings().expressionContext().scope(0).setVariable('myvar',1)
我想我在不同的表达上下文中迷路了...
我想使用Python控制台更改用户定义的项目变量(可以在项目设置|变量中手动编辑)的值。我在QgsExpressionContextScope类中跟踪了setVariable()函数,但实际上并未成功更改项目设置中的变量。到目前为止,我的代码:
iface.mapCanvas().mapSettings().expressionContext().scope(0).setVariable('myvar',1)
我想我在不同的表达上下文中迷路了...
Answers:
查看QgsExpressionContextUtils(https://qgis.org/api/classQgsExpressionContextUtils.html)。您需要的方法是QgsExpressionContextUtils.setProjectVariable,例如
QgsExpressionContextUtils.setProjectVariable('myvar','hello world')
setProjectVariables(preserved_variables)
我检查了C ++代码,它可以与您一起工作以进行重置,希望我能为该功能做出贡献。
QgsExpressionContextUtils