Đối với QGIS 3, QgsMapLayerRegistry
chức năng của đã được chuyển sang QgsProject
.
Vì vậy, để lặp lại qua các lớp bản đồ, bạn nên sử dụng cấu trúc đó:
layers = QgsProject.instance().mapLayers()
.mapLayers()
trả về một từ điển có cấu trúc như {layer_x_id: layer_x, layer_y_id: layer_y, ....}
. Sau đó, bạn có thể lặp qua các lớp như:
for layer_id, layer in layers.items():
print(layer.name())
Vì .mapLayers()
trả về một từ điển ( dict
), bạn cũng có thể sử dụng .values()
phương thức từ điển chỉ trả về một từ list
có chứa các lớp trong trường hợp đó. Sau đó, bạn có thể lặp qua các lớp như:
layers = QgsProject.instance().mapLayers().values()
for layer in layers:
print(layer.name())
Nếu bạn thích, bạn có thể lặp lại theo cách này:
layers = QgsProject.instance().mapLayers() # dictionary
for layer in layers.values():
print(layer.name())