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?


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) .


ok - beachte, dass ich gerade die Antwort bearbeitet habe, um deine vlVariable zu verwenden.
Andytilia
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.