วิธีการลบเวกเตอร์ QgsVectorLayer จากปลั๊กอิน QGis หลาม


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 ขึ้นไปแทนที่ด้วยQgsMapLayerRegistryQgsProject

หรือถ้ามีโอกาสคุณต้องการลบชั้นว่างเปล่าทั้งหมดตรวจสอบลบเลเยอร์เปล่าปลั๊กอิน


ตกลง - โปรดทราบว่าฉันเพิ่งแก้ไขคำตอบเพื่อใช้vlตัวแปรของคุณ
andytilia
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.