Il semble que ce processing.getObject()
ne soit plus disponible dans QGIS.
from PyQt5.QtCore import *
from qgis.core import *
#...
layer = processing.getObject(layer)
# -> ...module 'processing' has no attribute 'getObject'
Existe-t-il une nouvelle façon d'utiliser get.Object
?
qgis
pyqgis
qgis-processing
qgis-3
Mer lunaire
la source
la source
Réponses:
J'ai une copie du projet github QGIS localement, il y a quelques mois mais j'ai pu trouver où cela a changé.
Cela vaut la peine de vérifier la liste des modifications de l'API , qui mentionne ceci
En utilisant des annotations de ligne git, j'ai pu retracer cela à un changement effectué il y a quelques mois ...
il semble que quelques méthodes (y compris getObject ) aient été refactorisées et remplacées par une seule méthode getLayerFromString ()
Mais depuis lors, il a été déplacé vers QgsProcessingUtils .
Vous pouvez donc essayer d'utiliser
QgsProcessingUtils.mapLayerFromString()
Si vous utilisez QGIS 2.x, vous devriez toujours pouvoir utiliser getObject () comme auparavant (vous pouvez vérifier en utilisant
print(processing.__dict__['getObject'])
la source
La méthode 'processing.getObject ()' est toujours disponible dans QGIS. Il peut être observé à l'image nette:
Ainsi, la solution de contournement est la suivante:
la source