Comment supprimer un vecteur QgsVectorLayer du plugin python QGis

13

J'ai réussi à ajouter QgsVectorLayerà QGIStravers un plugin python, par exemple:

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

Mais comment puis-je le supprimer?

Heisenbug
la source
Je ne savais pas que vous pouviez réellement utiliser cette méthode dans une affectation de variable. M'a aidé à résoudre un problème que je ne savais pas que j'avais: P
TurboGraphxBeige

Réponses:

16

Êtes-vous sur QGIS 1.8? Si oui, vous pouvez retirer votre vlavec:

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

autrement:

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

Et si vous utilisez QGIS 3.0+, remplacez-le QgsMapLayerRegistrypar QgsProject.

Ou si par hasard vous souhaitez supprimer tous les calques vides, consultez le plugin Supprimer les calques vides .

andytilia
la source
ok - notez que je viens de modifier la réponse pour utiliser votre vlvariable.
andytilia