[Qgis-user] Convert symbology of qgis layer into PyQGIS code to define renderer
Manuel Campagnolo
mlc at isa.ulisboa.pt
Fri Jun 11 06:58:04 PDT 2021
Olá Gustavo
How do I apply the named style afterwards in PyQGIS from the style qml
file as the example below?
Thanks again
Manuel
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis simplifyLocal="1" labelsEnabled="0" simplifyMaxScale="1"
simplifyDrawingTol="1" simplifyDrawingHints="1" simplifyAlgorithm="0"
version="3.18.1-Zürich" readOnly="0" hasScaleBasedVisibilityFlag="0"
minScale="100000000" maxScale="0" styleCategories="AllStyleCategories">
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
<Private>0</Private>
</flags>
<temporal durationUnit="min" enabled="0" startExpression=""
fixedDuration="0" startField="" mode="0" durationField="" accumulate="0"
endField="" endExpression="">
<fixedRange>
<start></start>
<end></end>
</fixedRange>
</temporal>
<renderer-v2 forceraster="0" attr="layer" enableorderby="0"
symbollevels="0" type="categorizedSymbol">
<categories>
<category value="interior" render="true" symbol="0" label="Faixa
interior"/>
<category value="exterior" render="true" symbol="1" label="Faixa
exterior"/>
</categories>
<symbols>
<symbol name="0" clip_to_extent="1" force_rhr="0" alpha="0.7"
type="fill">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer enabled="1" locked="0" pass="0" class="SimpleFill">
<Option type="Map">
<Option value="3x:0,0,0,0,0,0"
name="border_width_map_unit_scale" type="QString"/>
<Option value="128,128,128,255" name="color" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"
type="QString"/>
[...]
On 11/06/2021 14:41, Jorge Gustavo Rocha wrote:
> Olá Manuel,
>
> There is no way to get the PyQGIS code from the style, as far as I know.
>
> But you can save the style (using the native QGIS format) and apply the
> named style afterwards in PyQGIS easily. Is this alternative workflow
> suitable for you?
>
> Regards,
>
> Gustavo
>
> On 11/06/21 12:56, Manuel Campagnolo wrote:
>> Hi
>>
>> Do you know of a way of using the style of a ,say, vector layer in
>> QGIS3 to create automatically the python code that would generate it,
>> namely the QgsSymbol part in the code below.
>>
>> Thanks
>>
>>
>> symbol1=QgsSymbol.defaultSymbol(ifn_ppsm.geometryType())
>> symbol2=QgsSymbol.defaultSymbol(ifn_ppsm.geometryType())
>> symbol3=QgsSymbol.defaultSymbol(ifn_ppsm.geometryType())
>> symbol4=QgsSymbol.defaultSymbol(ifn_ppsm.geometryType())
>> symbol5=QgsSymbol.defaultSymbol(ifn_ppsm.geometryType())
>>
>> symbol1.setColor(QColor('black'))
>> symbol2.setColor(QColor('gray'))
>> symbol3.setColor(QColor('dark green'))
>> symbol4.setColor(QColor('light green'))
>> symbol5.setColor(QColor('orange'))
>>
>> cat1=QgsRendererCategory('Improdutivos', symbol1, 'Improdutivos') #
>> category, symbol, label
>> cat2=QgsRendererCategory('Urbano', symbol2, 'Urbano')
>> cat3=QgsRendererCategory('Matos e Pastagens', symbol3, 'Matos e
>> Pastagens')
>> cat4=QgsRendererCategory('Floresta', symbol4, 'Floresta')
>> cat5=QgsRendererCategory('Agricultura', symbol5, 'Agricultura')
>> categories=[cat1,cat2,cat3,cat4,cat5] # list
>>
>> renderer = QgsCategorizedSymbolRenderer('usosolo', categories)
>> ifn_ppsm.setRenderer(renderer)
>>
>> _______________________________________________
>> Qgis-user mailing list
>> Qgis-user at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
--
---------------------------------
Manuel Campagnolo
https://www.isa.ulisboa.pt/id/mlc
More information about the Qgis-user
mailing list