Python kodundan QGisVectorLayer nasıl gizlenir / gösterilir?


11

Bir katman oluşturduktan sonra, onu nasıl gizleyebilir / gösterebilirim? QGIS aracılığıyla onay kutusunu seçerek belirli bir katmanın oluşturulmasını etkinleştirebilir / devre dışı bırakabilirim, ancak bunu python kodundan programlı olarak yapmam gerekiyor.

Python kodundan bir etiketi nasıl gösterebilir / gizleyebilirim (kaldırmaz)?

Gibi bir şey arıyorum:

aLayer = self.addVectorLayer(uri.uri(), layerName, self.dbConn.getProviderName())
aLayer.Hide()
....
aLayer.Show()

Değişken adını vl(önceki bir sorudaki benzer kod örneğinden) değiştirdiğinize sevindim aLayer. Küçük harfi lrakam ile karıştırmak kolaydır 1.
andytilia

@andytilia: haklısın. Eski soruları da düzenledim.
Heisenbug

Yanıtlar:


8

Efsane nesnesi aracılığıyla katman görünürlüğünü kontrol edebilirsiniz. Yukarıdaki örnek kodunuzu kullanarak işte burada:

aLayer = self.addVectorLayer(uri.uri(), layerName, self.dbConn.getProviderName())
legend = self.legendInterface()  # access the legend
legend.setLayerVisible(aLayer, False)  # hide the layer
# do something else
legend.setLayerVisible(aLayer, True)  # show the layer

# maybe later I want to check if the layer is visible
print legend.isLayerVisible(aLayer)

İşte için belgeler legendInterface: http://qgis.org/api/classQgsLegendInterface.html

İyi şanslar!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.