Для QGIS 3 QgsMapLayerRegistry
функциональность была перенесена в QgsProject
.
Итак, для перебора слоев карты вы должны использовать эту структуру:
layers = QgsProject.instance().mapLayers()
.mapLayers()
возвращает словарь, структурированный как {layer_x_id: layer_x, layer_y_id: layer_y, ....}
. Затем вы можете перебирать слои, например:
for layer_id, layer in layers.items():
print(layer.name())
Поскольку .mapLayers()
возвращает словарь ( dict
), вы также можете использовать .values()
метод словаря, который возвращает только тот, list
который содержит слои в этом случае. Затем вы можете перебирать слои, например:
layers = QgsProject.instance().mapLayers().values()
for layer in layers:
print(layer.name())
Если вы предпочитаете, вы можете выполнить итерацию следующим образом:
layers = QgsProject.instance().mapLayers() # dictionary
for layer in layers.values():
print(layer.name())