Cara menghapus vektor QgsVectorLayer dari plugin python QGis

13

Saya berhasil menambahkan QgsVectorLayerdalam QGISmelalui sebuah plugin python, misalnya:

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

Tetapi bagaimana saya bisa menghapusnya?

Heisenbug
sumber
Tidak tahu bahwa Anda sebenarnya bisa menggunakan metode ini dalam penugasan variabel. Membantu saya memecahkan masalah yang saya tidak tahu saya punya: P
TurboGraphxBeige

Jawaban:

16

Apakah Anda menggunakan QGIS 1.8? Jika demikian, Anda dapat menghapus vldengan:

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

jika tidak:

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

Dan jika Anda menggunakan QGIS 3.0+, ganti QgsMapLayerRegistrydengan QgsProject.

Atau jika kebetulan Anda ingin menghapus semua lapisan kosong, periksa plugin Hapus Lapisan Kosong .

andytilia
sumber
ok - perhatikan bahwa saya baru saja mengedit jawaban untuk menggunakan vlvariabel Anda .
andytilia