Desarrollo de un plugin de qgis, me encontré con que si la capa no está seleccionada en el panel Capas me puede iterar a través de todas las capas y hacer algo para ellos, pero "activar".
Podría alguien darme una pista por favor? Gracias!
Desarrollo de un plugin de qgis, me encontré con que si la capa no está seleccionada en el panel Capas me puede iterar a través de todas las capas y hacer algo para ellos, pero "activar".
Podría alguien darme una pista por favor? Gracias!
Puede establecer la capa activa mediante el qgis.utils.iface objeto (es decir, QgisInterface):
qgis.utils.iface.setActiveLayer(QgsMapLayer) # returns bool
# or
qgis.utils.iface.legendInterface().setCurrentLayer(QgsMapLayer) # returns bool
Borrar la selección o la capa activa (subrayado QTreeWidget elemento en QGIS 2.0), en la leyenda es un poco más complicado:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
lg = qgis.utils.iface.mainWindow().findChild(QTreeWidget, 'theMapLegend')
lg.selectionModel().clear() # clear just selection
lg.setCurrentItem(None) # clear selection and active layer
Hay tres maneras de recuperar la actual capas, en relación a lo que usted puede hacer:
~ a través de QList< QgsMapLayer * > QgsLegendInterface::capas()
qgis.utils.iface.legendInterface().layers() # returns [layer, ...]
~ a través de QList< QgsMapLayer * > QgsMapCanvas::capas():
qgis.utils.iface.mapCanvas().layers() # returns [layer, ...]
~ a través de const QMap< QString, QgsMapLayer * > & QgsMapLayerRegistry::mapLayers():
QgsMapLayerRegistry.instance().mapLayers() # returns {'layer_id': layer, ...}
Hacer referencia a estas respuestas para obtener información acerca de las diferencias en los capa de colecciones.
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.