仅在qgs Composer图例中显示已过滤的图层-PyQgis

时间:2018-10-24 07:45:20

标签: python plugins legend qgis legend-properties

我正在开发自定义Qgis插件。我想以图例形式导出地图画布以及图例。图例的代码为:

legend = QgsComposerLegend(c)
legend.model().setLayerSet(mapRenderer.layerSet())
c.addItem(legend)

问题是它在地图图例中添加了所有图层,而我只想在地图图例中包括在地图范围内可见的图层。我也尝试过:

legend.setLegendFilterByMapEnabled(True)

但这似乎不起作用。关于如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

我已经通过拆分地图图例和图例图来解决了这个问题。 我的意思是 ;为地图图创建并保存图后,我为图例图创建了另一个mapcanvas-renderer,这次我使用removeMapLayer方法删除了不需要的图层,然后也保存了图例图。

QgsMapLayerRegistry.instance().removeMapLayer(the_unwanted_layer)

我希望这会有所帮助