पायथन कोड से QGisVectorLayer को कैसे छिपाया / दिखाया जाए?


11

एक बार एक परत बना लेने के बाद, मैं इसे कैसे छिपा / दिखा सकता हूँ? मैं क्यूजीआईएस के माध्यम से चेकबॉक्स का चयन करके एक विशिष्ट परत के प्रतिपादन को सक्षम / अक्षम कर सकता हूं, लेकिन मुझे इसे अजगर कोड से प्रोग्रामेटिक रूप से करने की आवश्यकता है।

मैं अजगर कोड से एक लेबल कैसे दिखा / छिपा सकता / हटा सकता हूं?

मैं कुछ इस तरह की तलाश में हूँ:

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

मुझे खुशी है कि आपने चर नाम vl(इसी तरह के कोड नमूने से पहले के प्रश्न में) को बदल दिया है aLayerlअंक के साथ लोअरकेस अक्षर को भ्रमित करना आसान है 1
.ytilia 12

@andytilia: आप सही हैं। मैंने पुराने प्रश्नों को भी संपादित किया।
हाइजेनबग

जवाबों:


8

आप लीजेंड ऑब्जेक्ट के माध्यम से लेयर विजिबिलिटी को नियंत्रित कर सकते हैं। यहाँ यह है, ऊपर अपने नमूना कोड का उपयोग कर:

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)

यहाँ के लिए प्रलेखन है legendInterface: http://qgis.org/api/classQgsLegendInterface.html

सौभाग्य!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.