1

我目前正在尝试选择一个图层。在 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

第二个论点是什么?

4

2 回答 2

0

第二个参数是 a QgsProcessingContext(),它让算法知道它将在什么上下文中运行。

你可以这样设置:

context = QgsProcessingContext()
context.setProject(QgsProject.instance())
QgsProcessingUtils.mapLayerFromString('my_layer', context)

但是,由于您说您正在尝试选择一个图层,如果您尝试从 QGIS 图层树中获取一个图层,您可以查看Getting layer by name in PyQGIS? .

于 2021-06-21T17:15:28.080 回答
-2

访问QGIS API 文档,您将找到答案。

于 2020-09-17T10:11:52.290 回答