[QGIS-Developer] Can I automatically style a layer generated with a Processing Sink?

Nyall Dawson nyall.dawson at gmail.com
Tue Sep 11 23:21:49 PDT 2018


On Wed, 12 Sep 2018 at 04:00, C Hamilton <adenaculture at gmail.com> wrote:
>
> In a processing routine I create an output vector layer.
>
>         self.addParameter(
>             QgsProcessingParameterFeatureSink(
>                 self.PrmOutputLayer,
>                 tr('Output layer'))
>             )
>
>         (sink, dest_id) = self.parameterAsSink(parameters,
>             self.PrmOutputLayer, context, fields, QgsWkbTypes.LineString, srcCRS)
>
> I would like to style the output layer by enabling a label based off of one of the fields. Can I do this in Processing? I guess what I would like to get is the actual vector layer that is created. Is that possible?

Actually the best approach is to use a layer post processor. This is
flexible and totally thread-safe :)

I don't think there's any Python examples in QGIS yet, but see

https://github.com/qgis/QGIS/blob/master/src/analysis/processing/qgsalgorithmcategorizeusingstyle.cpp#L104

and

https://github.com/qgis/QGIS/blob/master/src/analysis/processing/qgsalgorithmimportphotos.cpp#L227

for some c++ examples.

Here's a possible Python example:

https://gist.github.com/nyalldawson/26c091dd48b4f8bf56f172efe22cf75f

Nyall


More information about the QGIS-Developer mailing list