问题描述
我目前正在尝试选择一个图层。在Qgis 2中,这是通过
完成的from qgis import processing
lyrConsumer = processing.getobject('contours-iris-2014')
但是现在,文档说我必须在Qgis3中使用QgsProcessingUtils.mapLayerFromString()。显然,由于出现此错误,我现在需要再加上一个参数。
Traceback (most recent call last):
File "C:\OSGEO4~1\apps\python37\lib\code.py",line 90,in runcode
exec(code,self.locals)
File "<input>",line 1,in <module>
TypeError: QgsProcessingUtils.mapLayerFromString(): not enough arguments
第二个参数是什么?
解决方法
第二个参数是 QgsProcessingContext()
,它让算法知道它将运行的上下文是什么。
你可以这样设置:
context = QgsProcessingContext()
context.setProject(QgsProject.instance())
QgsProcessingUtils.mapLayerFromString('my_layer',context)
但是,既然您说要尝试选择图层,那么如果您尝试从 QGIS 图层树中获取图层,则可以查看 Getting layer by name in PyQGIS?。
,访问QGIS API Documentation,您将找到答案。