On 1 February 2018 at 05:45, Chris Crook <[email protected]> wrote:
> I am updating some plugins which use QgsExpression, and I'm wondering about 
> the best way to use expressions in QGIS3.  It in the past I used a pattern 
> like:
>
>   exp=QgsExpression(expressionText)
>   exp.prepare(fields)
>   request=QgsFeatureRequest()
>   request.setSubsetOfAttributes( expression.referencedColumns(), fields )
>   for feat in layer.getFeatures(request)
>       value=expression.evaluate(feat)
>
> However with QGIS3 this has clearly changed!  QgsExpression is not included 
> in the QGIS3 API https://qgis.org/api/annotated.html.

That's a bug with the generated docs (fix incoming ) - it's still
around. BTW you may prefer the work-in-progress Python API docs here:
http://python.qgis.org/api/

> The prepare and referencedColumns are no longer defined. I did have a look at 
> the C++ code for QgsExpression, but I find I'm still looking for guidance.
>
> I've searched the QEP issues  been able to locate a QEP, or other 
> documentation.  Can anyone point me to some documentation or provide an 
> example of current best practice please.

Best place to check first is the API breaks docs:

https://qgis.org/api/api_break.html

This details the changes in QgsExpression (amongst all the other classes).

Hope that helps!

Nyall
_______________________________________________
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