Suite

Le canevas de nom global n'est pas défini

Le canevas de nom global n'est pas défini


J'essaie juste d'imprimer le nom de la couche en utilisant python dans mon plugin QGIS en suivant le code.

allLayers = canvas.layers() pour i dans allLayers : print i.name()

Il indique une erreur : le canevas de nom global n'est pas défini. Comment régler ceci?


Vous appelez la mauvaise classe. Ce que vous devez appeler, c'est mapCanvas, et non de la toile.

Remplacez votre code par celui-ci :

allLayers = iface.mapCanvas().layers() pour i dans allLayers : print i.name()

Cela imprimera tous les noms de vos calques actuels.

Notez également que vous devez indenter la ligne d'impression. Je suppose que dans votre message c'était juste un problème de copier/coller, mais sinon, allez-y et changez-le, ou cela ne fonctionnera pas :-)