Для 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()
метод словника, який повертає просто a, 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())