So entfernen Sie einen QgsVectorLayer-Vektor aus dem QGis-Python-Plugin

13

Ich schaffte hinzufügen QgsVectorLayerin QGISüber eine Python - Plugin, zum Beispiel:

vl = self.iface.addVectorLayer(uri.uri(), layerName, self.dbConn.getProviderName())

Aber wie kann ich es entfernen?

Heisenbug
quelle
Wusste nicht, dass Sie diese Methode tatsächlich in einer variablen Zuweisung verwenden können. Hat mir geholfen, ein Problem zu lösen, von dem ich nicht wusste, dass ich es habe: P
TurboGraphxBeige

Antworten:

16

Sind Sie auf QGIS 1.8? Wenn ja, können Sie Ihre entfernen vlmit:

QgsMapLayerRegistry.instance().removeMapLayers( [vl.id()] )

Andernfalls:

QgsMapLayerRegistry.instance().removeMapLayer( vl.id() )

Und wenn Sie mit QGIS 3.0+ arbeiten, ersetzen Sie QgsMapLayerRegistrydurch QgsProject.

Wenn Sie versehentlich alle leeren Ebenen entfernen möchten, klicken Sie auf das Plug-in „Remove Empty Layers“ (Leere Ebenen entfernen) .

andytilia
quelle
ok - beachte, dass ich gerade die Antwort bearbeitet habe, um deine vlVariable zu verwenden.
Andytilia