I'm writing a plugin where once a layer is selected in a combo box, it shows the layer's linear unit of measurement (meters, feet, etc.) in a QLineEdit box.
def Function(self):
currLyr = self.cmbLyrSelect.currentLayer()
currLyrUnit = currLyr.sourceCrs().mapUnits()
self.linEditBox.setText(str(currLyrUnit))
This works and mapUnits()
return a 0
, which is meters as the layer is projected. So, to get meters
as string, I use instead
self.linEditBox.setText(str(currLyrUnit.encodeUnit()))
But QGIS returns an Attribute Error saying 'DistanceUnit' object has no attribute 'encodeUnit'
.
What's the correct syntax in using encodeUnit()
?
DistanceUnit()
https://qgis.org/pyqgis/3.16/core/QgsUnitTypes.html#qgis.core.QgsUnitTypes.DistanceUnit
encodeUnit()
https://qgis.org/pyqgis/3.16/core/QgsUnitTypes.html#qgis.core.QgsUnitTypes.encodeUnit
Best Answer
You can get it with the following code :