답변:
이것은 QGIS- 개발자 포럼에서 QgsMapLayer :: setCustomPropertylayer 를 사용하여 레이어에 임베드 된 위젯을 사용 가능하게하는 간단한 설명 입니다. 그런 다음 itemAdded
레이어를 추가 할 때마다 투명도 위젯과 함께 자동으로 표시되도록 이벤트 를 추가 할 수 있습니다 .
따라서 Python 콘솔 에서 다음과 같은 것을 사용할 수 있습니다 .
def transparency_slider():
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
if layer.customProperty("embeddedWidgets/count") != 1 or layer.customProperty("embeddedWidgets/0/id") != u'transparency':
layer.setCustomProperty("embeddedWidgets/count", 1)
layer.setCustomProperty("embeddedWidgets/0/id", "transparency")
else:
pass
qgis.utils.iface.legendInterface().refreshLayerSymbology(layer)
# Connect "itemAdded" event to "transparency_slider" function
legend = qgis.utils.iface.legendInterface()
legend.itemAdded.connect(transparency_slider)
Win7 64 비트 용 QGIS 2.18.3에서 테스트되었습니다.
예:
파이썬 콘솔에 코드를 삽입하고 shapefile을 추가하기 전에 :
결과:
legend.itemAdded.disconnect(transparency_slider)
파이썬 콘솔에 입력 하면됩니다.)
import qgis
. from qgis.core import QgsMapLayerRegistry
당신의 스크립트에서 :)