レイヤーの削除は、キャンバスにセットされているレイヤーセットから取り除き、
そのレイヤーをQgsMapLayerRegistry()
からも削除します。
QgsMapLayerRegistry()
からの削除を行わない場合は、単に非表示にするだけです。
以下のようにすると、指定したレイヤーを削除することができます。
# self.layersはMapCanvasLayerオブジェクトのリスト # ここから、3番目のレイヤーを削除したい場合 deleteLayer = self.layers[2].layer() del self.layers[2] QgsMapLayerRegistry().instace().removeMapLayer(deleteLayer.getLayerID()) # 表示を更新 self.canvas.setLayerSet(self.layers) self.canvas.refresh()