Thursday, 15 December 2016

pyqgis - Setting QgsExpression for QgsPalLayerSettings in QGIS


How do you apply a QgsExpression to a Label ?


I can do it in QGIS with this simple expression concat('N:' ,round(Value,0),'\n','Yield:' ,round(Value 2,0))


N: 65


Yield: 40


How do I do it in PyQGIS ? I see a getLabelExpression but no setLabelExpression


This works but I want but only for the field name


 crap = QgsVectorLayer("D:/data.shp", "data", "ogr")
QgsMapLayerRegistry.instance().addMapLayer(crap)
palyr = QgsPalLayerSettings()

palyr.readFromLayer(crap)
palyr.enabled = True
palyr.fieldName = 'Name'
palyr.placement= QgsPalLayerSettings.OverPoint
palyr.setDataDefinedProperty(QgsPalLayerSettings.Size,True,True,'8','')
palyr.writeToLayer(crap)


No comments:

Post a Comment