파이썬 코드에서 QGisVectorLayer를 숨기거나 표시하는 방법?


11

레이어를 생성 한 후 숨기거나 표시하려면 어떻게해야합니까? QGIS를 통해 확인란을 선택하여 특정 레이어의 렌더링을 활성화 / 비활성화 할 수 있지만 파이썬 코드에서 프로그래밍 방식으로 수행해야합니다.

파이썬 코드에서 레이블을 표시하거나 숨기지 않는 방법은 무엇입니까?

나는 다음과 같은 것을 찾고있다 :

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

변수 이름 vl(이전 질문의 유사한 코드 샘플에서)을로 변경했습니다 aLayer. 소문자 l와 숫자 를 혼동하기 쉽습니다 1.
andytilia

@andytilia : 당신이 맞아요. 이전 질문도 편집했습니다.
Heisenbug

답변:


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)

http://qgis.org/api/classQgsLegendInterface.html에 대한 설명서는 다음과 같습니다 legendInterface.

행운을 빕니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.