[QGIS-Developer] QGIS python action with Expression problem

Andreas Neumann a.neumann at carto.net
Mon Nov 7 02:59:47 PST 2022


Hi Ale,

Thanks for the hint!

With

expContext.setFeature(form.feature())

it seems to work.

I was assuming that adding the formScope would also add the feature 
context ... but apparently not.

Now I can continue adding the more complex expression.

Thank you for your help!

Andreas

On 2022-11-07 11:46, Alessandro Pasotti wrote:

> You need to set the feature if you want to access the feature fields.
> 
> QgsExpressionContext::setFeature( const QgsFeature &feature )
> 
> If you want the form feature values you need to use the current_value
> or the current_feature functions.
> 
> Regards.
> 
> On Mon, Nov 7, 2022 at 11:27 AM Andreas Neumann via QGIS-Developer
> <qgis-developer at lists.osgeo.org> wrote:
> 
>> Hi,
>> 
>> I am trying to implement a Python action in "form" and "feature" 
>> action scope that uses a QGIS expression, but fail to get a valid 
>> expression calculation.
>> 
>> Here is my code so far:
>> 
>> from qgis.PyQt.QtWidgets import *
>> from qgis.core import QgsMessageLog
>> 
>> expContext = QgsExpressionContext()
>> expContext.appendScopes(QgsExpressionContextUtils.globalProjectLayerScopes(form.layer()))
>> expContext.appendScope(QgsExpressionContextUtils.formScope(form.feature(),'SingleEditMode'))
>> 
>> exp = QgsExpression('t_id')
>> 
>> expResult = exp.evaluate(expContext)
>> QgsMessageLog.logMessage('Expression Result=' + str(expResult))
>> 
>> So even the most basic expression (getting a field value) will not 
>> work in my code. I always get "None" as a result.
>> 
>> Any idea what is missing? Am I missing a certain scope or an import 
>> statement?
>> 
>> Thank you very much for any hints what might be wrong here ...
>> 
>> Andreas
>> 
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20221107/8f7e6709/attachment-0001.htm>


More information about the QGIS-Developer mailing list