Як видалити векторний QgsVectorLayer з плагіна QGis python


13

Мені вдалося додати QgsVectorLayerв QGISчерез пітон плагін, наприклад:

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

Але як я можу її видалити?


Не знав, що ви можете реально використовувати цей метод у призначенні змінної. Допоміг мені вирішити проблему, яку я не знав, що маю: P
TurboGraphxBeige

Відповіді:


16

Ви на QGIS 1.8? Якщо так, ви можете видалити свої за vlдопомогою:

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

інакше:

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

І якщо ви на QGIS 3.0+, замініть QgsMapLayerRegistryз QgsProject.

Або якщо випадково ви хочете видалити всі порожні шари, перегляньте плагін Видалити порожні шари .


нормально - зауважте, що я щойно відредагував відповідь, щоб використовувати вашу vlзмінну.
andytilia
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.