I managed to add QgsVectorLayer in QGIS through a python plugin, for example:

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

But how can I remove it?

  • Didn't know that you could actually use this method in a variable assignment. Helped me solve a problem that I didn't know I had :P Jun 23, 2017 at 19:11

1 Answer 1


Are you on QGIS 1.8? If so, you can remove your vl with:

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


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

And if you are on QGIS 3.0+, replace QgsMapLayerRegistry with QgsProject.

Or if by chance you want to remove all empty layers, check out the Remove Empty Layers plugin.

  • ok -- note that I just edited the answer to use your vl variable.
    – andytilia
    Nov 27, 2012 at 18:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.