Suite

Définition de l'instance de plusieurs couches à l'aide de « mapLayersByName » dans QGIS Python Scripting ?

Définition de l'instance de plusieurs couches à l'aide de « mapLayersByName » dans QGIS Python Scripting ?


J'utilise actuellement "mapLayersByName" avec succès pour définir un calque actif à la fois comme suit…

vl = QgsMapLayerRegistry.instance().mapLayersByName('My_Layer')[0] iface.setActiveLayer(vl)

Une instance de plusieurs couches peut-elle être définie à l'aide de la méthode "mapLayersByName" ?

J'ai essayé…

vl = QgsMapLayerRegistry.instance().mapLayersByName('My_First_Layer', 'My_Second_Layer')[0] iface.setActiveLayer(vl)

Comme vous pouvez le voir, mon objectif final dans ce cas serait de définir les calques dans cette instance de PLUSIEURS calques (vl) en tant que calques actifs à l'aide de la méthode "iface.setActiveLayer()". Je remarque que cette méthode n'est pas au pluriel (c'est-à-dire pas "setActiveLayers()"). Important?


Non, tu ne peux pas.mapLayersByNamerenvoie une liste de calques correspondant à un seul nom (vous pouvez avoir plusieurs calques avec le même nom)

setActiveLayerprend une seule couche active car il n'y a qu'une seule couche active à la fois dans QGIS.