สำหรับ QGIS 3 QgsMapLayerRegistry
ฟังก์ชั่น 's 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())