Respostas:
Isso foi mencionado brevemente no fórum QGIS - Developer, onde você precisa usar QgsMapLayer :: setCustomPropertylayer para ativar o widget incorporado para sua camada. Podemos então adicionar um itemAdded
evento para que, sempre que uma camada for adicionada, ela seja mostrada automaticamente com o widget de transparência.
Portanto, você pode usar algo como o seguinte no console 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)
Testado no QGIS 2.18.3 para Win7 de 64 bits.
Exemplo:
Inserindo código no console python e antes de adicionar shapefiles:
Resultado:
legend.itemAdded.disconnect(transparency_slider)
no console python;)
import qgis
; from qgis.core import QgsMapLayerRegistry
em seu script :)
Existe um plugin chamado Transparência de varredura, que, como o nome sugere, abrirá um painel acoplável com controles deslizantes para alterar a transparência de uma camada de varredura selecionada.
Vá para Plug-ins> Gerenciar e instalar plug-ins - Encontre e instale, um novo ícone associado aparecerá na sua barra de ferramentas.