É possível ter um controle deslizante de transparência mostrado por padrão na janela Camada, ou seja, diretamente após adicionar uma nova camada, em vez de permitir que cada camada seja ativada manualmente através das propriedades da camada?
fonte
É possível ter um controle deslizante de transparência mostrado por padrão na janela Camada, ou seja, diretamente após adicionar uma nova camada, em vez de permitir que cada camada seja ativada manualmente através das propriedades da camada?
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.
fonte