How to activate a layer by its name in PyQGIS?

المشرف العام

Administrator
طاقم الإدارة
I'm writing a script that requires the attributes of different layers to work, and I would like to know how to call a layer that is not the currently active one and get its features. For example, I have three layers, named "Poles", "Lines" and "Loads", and I need to get the all the features of the layers with layer.getFeatures() and save those features in a list for each layer. For only one layer we usually do this:

If my active layer is "Poles", I write:

layer = iface.activeLayer() poles = layer.getFeatures()And then I can do anything with "poles", but how can I do this with the other layers that are not active? If I wanted to do the same with the layer "Lines", I would have to activate it "manually" by clicking on it, and repeating that code.

I have tried with this method: How to get a layer by name in PyQGIS?

And this one: How to get a layer that is not active with PyQGIS

But I always get this error message, because I'm not activating the layer, only creating a list of layer names.

Traceback (most recent call last):File "", line 1, in AttributeError: 'list' object has no attribute 'getFeatures'The question might be: How can I activate a layer by its name to get the features in it?



أكثر...
 
أعلى