Suite

Obtenir la liste des noms de couches à l'aide de PyQGIS ?

Obtenir la liste des noms de couches à l'aide de PyQGIS ?


J'ai besoin d'une liste contenant les noms de toutes les couches d'une session QGIS. J'ai fait la tâche comme

layerNames = [] pour i dans self.iface.mapCanvas().layers() : layerNames.append(str(i.name()))

mais cela a le problème que seuls les noms des couches visibles sont extraits. Comment puis-je obtenir une liste avec les noms de toutes les couches (visibles ou non) à l'aide de PyQGIS ?


QgsMapLayerRegistry.instance().mapLayers()vous donnera toutes les couches ouvertes.

Si vous voulez les noms alors :

names = [layer.name() pour la couche dans QgsMapLayerRegistry.instance().mapLayers().values()]

nomssera une liste de noms de calques

ou en utilisant une fonction normale :

pour la couche dans QgsMapLayerRegistry.instance().mapLayers().values() : print layer.name()

Depuis la version 3,Registre QgsMapLayerles fonctionnalités ont été déplacées versProjet Qgs: https://qgis.org/api/api_break.html

Mise à jour pour QGIS3.x :

à partir de qgis.core import QgsProject names = [layer.name() pour la couche dans QgsProject.instance().mapLayers().values()] print(names)

selon la réponse de @Nathan W, cela produit une liste de couches dans le projet actuel :

['GoogleSat', 'MyPointsLayer', 'Roads', 'House_numbers']


Voir la vidéo: UTM to Lat Long by QGIS Software English