8

I need a list containing the names of all the layers in a QGIS session. I did the task as

layersNames = []
for i in self.iface.mapCanvas().layers():
   layersNames.append(str(i.name()))

but this has the problem that only the names for the visible layers are extracted. How can I get a list with the names of all (visible or not) layers using PyQGIS?

16

QgsMapLayerRegistry.instance().mapLayers() will give you all layers that are opened.

If you want the names then:

names = [layer.name() for layer in QgsMapLayerRegistry.instance().mapLayers().values()]

names will be a list of layer names

or using a normal function:

for layer in QgsMapLayerRegistry.instance().mapLayers().values():
    print layer.name()

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.