Come attivare la visibilità dei livelli in QGIS utilizzando Python?


12

Come posso attivare / disattivare la visibilità dei livelli in QGIS tramite l'API Python?

Risposte:


11

Questo proviene dai documenti QGIS, se si esegue QGIS => 1.5

from PyQt4 import QtCore, QtGui
from qgis import core, gui
i = qgis.utils.iface
# load a georeferenced raster layer
loadedLayer = i.addRasterLayer('c:\\data\\a_map.png')
# get legend
legend = i.legendInterface()
# check current visibility
legend.isLayerVisible(loadedLayer)
# set visibility off 
legend.setLayerVisible(loadedLayer, False)
# and on again!
legend.setLayerVisible(loadedLayer, True) 

Immagino che cambieresti loadedLayer = i.addRasterLayer('c:\\data\\a_map.png')con il livello che vuoi nascondere, che potresti usare usando qualcosa del tipo:

QgsMapLayerRegistry.instance().mapLayer(QString theLayerId)

0

La risposta accettata non è disponibile per QGIS3. In QGIS3, utilizzo il codice seguente:

QgsProject.instance().layerTreeRoot().findLayer(lyr.id()).setItemVisibilityChecked(False)

Inoltre, possiamo attivare e disattivare tutti i livelli:

bool = True # or False
root = QgsProject.instance().layerTreeRoot()
allLayers = root.layerOrder()
for layer in allLayers:
    root.findLayer(layer.id()).setItemVisibilityChecked(bool)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.