Risposte:
Questo è stato brevemente menzionato nel forum degli sviluppatori di QGIS in cui è necessario utilizzare QgsMapLayer :: setCustomPropertylayer per abilitare il widget incorporato per il proprio livello. Possiamo quindi aggiungere un itemAdded
evento in modo che ogni volta che viene aggiunto un livello, verrà automaticamente mostrato con il widget Trasparenza.
Quindi puoi usare qualcosa di simile al seguente nella Python Console :
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)
Testato su QGIS 2.18.3 per Win7 64-bit.
Esempio:
Inserimento di codice nella console di Python e prima di aggiungere shapefile:
Risultato:
legend.itemAdded.disconnect(transparency_slider)
nella console python;)
import qgis
; from qgis.core import QgsMapLayerRegistry
nella tua sceneggiatura :)
Esiste un plug-in chiamato Raster Transparency, che come suggerisce il nome, aprirà un pannello agganciabile con cursori per modificare la trasparenza di un livello raster selezionato.
Vai a Plugin> Gestisci e installa plug-in: trova e installa, apparirà una nuova icona associata sulla barra degli strumenti.