Làm cách nào để loại bỏ một vectơ QssVectorLayer khỏi plugin python của QGis


13

Tôi đã quản lý để thêm QgsVectorLayervào QGISthông qua một plugin python, ví dụ:

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

Nhưng làm thế nào tôi có thể loại bỏ nó?


Không biết rằng bạn thực sự có thể sử dụng phương pháp này trong một phép gán biến. Đã giúp tôi giải quyết một vấn đề mà tôi không biết là mình có: P
TurboGraphxBeige

Câu trả lời:


16

Bạn có trên QGIS 1.8 không? Nếu vậy, bạn có thể xóa của bạn vlbằng:

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

nếu không thì:

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

Và nếu bạn đang ở trên QGIS 3.0+, hãy thay thế QgsMapLayerRegistrybằng QgsProject.

Hoặc nếu tình cờ bạn muốn xóa tất cả các lớp trống, hãy kiểm tra plugin Loại bỏ các lớp trống .


ok - lưu ý rằng tôi vừa chỉnh sửa câu trả lời để sử dụng vlbiến của bạn .
andytilia
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.