Thursday, 12 March 2015

Stuck on how to list loaded layers in QGIS 3 via Python


I've stuck on a issue about getting a list of loaded layers. I've two layers loaded, one spatial (point, line or area) and another one non spatial (postgresql table). I've tried this code but it lists only the spatial layers:



layername = []
for i in iface.mapCanvas().layers():
layername.append(i.name())
print(layername)

I've tried QgsProject.instance().layerTreeRoot()


root = QgsProject.instance().layerTreeRoot()
ids = root.findLayerIds()
print(ids)


but it gives me a layer name plus an id. How can I get a list of layer names from all loaded layers (spatial and non-spatial) in QGIS 3?



Answer



You can try


layerList = QgsProject.instance().layerTreeRoot().findLayers()
for layer in layerList:
print(layer.name())

That will give you a list of layer names


Check out the QgsLayerTree class for more info


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...