QGIS 3 için, QgsMapLayerRegistryişlevselliği taşındı QgsProject.
Bu nedenle, harita katmanlarını yinelemek için bu yapıyı kullanmalısınız:
layers = QgsProject.instance().mapLayers()
.mapLayers()olarak yapılandırılmış bir sözlük döndürür {layer_x_id: layer_x, layer_y_id: layer_y, ....}. Sonra aşağıdaki gibi katmanları yineleyebilirsiniz:
for layer_id, layer in layers.items():
print(layer.name())
Çünkü .mapLayers()getiriler bir sözlük ( dict), ayrıca kullanabilirsiniz .values()sadece bir sözlük olan getiri yöntemi listbu durumda katmanları içeren. Sonra aşağıdaki gibi katmanları yineleyebilirsiniz:
layers = QgsProject.instance().mapLayers().values()
for layer in layers:
print(layer.name())
İsterseniz, bu şekilde yineleyebilirsiniz:
layers = QgsProject.instance().mapLayers() # dictionary
for layer in layers.values():
print(layer.name())