Estoy tratando de desarrollar un independiente PyQGIS aplicación. La visualización del mapa no suponen ningún problema, pero no sé cómo agregar una leyenda a la lona.
Respuestas
¿Demasiados anuncios?Para complementar Luigi la respuesta, esta es la forma en que usted puede utilizar la Capa de la Vista de Árbol para añadir una leyenda y/o una tabla de contenido para su aplicación.
Después de crear tu lienzo en su independiente PyQGIS aplicación, usted necesita para crear un QgsLayerTreeView. Para eso, se necesita un modelo, y el modelo que necesita la capa de la raíz del árbol. Además, es necesario utilizar un QgsLayerTreeMapCanvasBridge para mantener tanto el mapa y el árbol en la sincronización. Todo esto se hace con el siguiente fragmento de código (tomado de esta Martin Dobias' post):
self.root = QgsProject.instance().layerTreeRoot()
self.bridge = QgsLayerTreeMapCanvasBridge(self.root, self.canvas)
self.model = QgsLayerTreeModel(self.root)
self.model.setFlag(QgsLayerTreeModel.AllowNodeReorder)
self.model.setFlag(QgsLayerTreeModel.AllowNodeRename)
self.model.setFlag(QgsLayerTreeModel.AllowNodeChangeVisibility)
self.model.setFlag(QgsLayerTreeModel.ShowLegend)
self.view = QgsLayerTreeView()
self.view.setModel(self.model)
Ahora, usted puede ser que desee incrustar la vista en un muelle widget dentro de la aplicación. Para ello, puede escribir el siguiente código justo debajo del código anterior:
self.LegendDock = QDockWidget( "Layers", self )
self.LegendDock.setObjectName( "layers" )
self.LegendDock.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea )
self.LegendDock.setWidget( self.view )
self.LegendDock.setContentsMargins ( 9, 9, 9, 9 )
self.addDockWidget( Qt.LeftDockWidgetArea, self.LegendDock )
Cuando ejecute la aplicación y la carga de capas o alterar cualquier simbología de capa, usted debe ver los cambios reflejados en el dock de widget, de esta manera:
Seguí a @kelly-thomas, el primer ejemplo de Cómo aplicar un graduado renderer de PyQGIS? para los símbolos de graduado en Tierra Natural de los Datos.
Además de mostrar sus capas' la simbología de la Capa de la Vista de Árbol le permite cambiar el nombre de las capas, ajustar la visibilidad de la capa y cambiar el orden de las capas en el mapa de lona.
Nota: asegúrese de que la importación de los módulos necesarios de qgis.gui
, PyQt4.QtCore
y PyQt4.QtGui
(o, simplemente, hacer from xxxx import *
para los tres).
siga esta guía Lutra de consultoría de qgis-capa-árbol-api-parte-3
saludos, Luigi Pirelli