Jak usunąć wektor QgsVectorLayer z wtyczki python QGis

13

Udało mi się dodać QgsVectorLayerw QGISpośrednictwem wtyczki Python, na przykład:

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

Ale jak mogę to usunąć?

Heisenbug
źródło
Nie wiedziałem, że faktycznie możesz użyć tej metody do przypisania zmiennej. Pomógł mi rozwiązać problem, o którym nie wiedziałem, że miałem: P
TurboGraphxBeige

Odpowiedzi:

16

Czy korzystasz z QGIS 1.8? Jeśli tak, możesz usunąć swoje za vlpomocą:

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

Inaczej:

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

A jeśli jesteś w QGIS 3.0+ zastąpić QgsMapLayerRegistryz QgsProject.

A jeśli przypadkiem chcesz usunąć wszystkie puste warstwy, sprawdź wtyczkę Usuń puste warstwy .

andytilia
źródło
ok - zauważ, że właśnie edytowałem odpowiedź, aby użyć twojej vlzmiennej.
andytilia