[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