Stai visualizzando il dispositivo di scorrimento per trasparenza per impostazione predefinita nel pannello Livelli di QGIS?


13

È possibile avere un dispositivo di scorrimento della trasparenza mostrato per impostazione predefinita nella finestra Livello, cioè direttamente dopo aver aggiunto un nuovo livello, anziché averlo abilitato manualmente per ogni livello tramite le proprietà del livello?

Risposte:


11

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 itemAddedevento 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:

Prima

Risultato:

Dopo


È fantastico! Come si può quindi disattivarlo se si desidera introdurre livelli vettoriali successivi senza il dispositivo di scorrimento della trasparenza?
Martin Hügi,

1
@ MartinHügi - Puoi semplicemente digitare legend.itemAdded.disconnect(transparency_slider)nella console python;)
Joseph

@ MartinHügi - Molto gradito, felice che faccia =)
Joseph

1
Sceneggiatura eccellente! C'è un modo per mantenerlo anche quando si riavvia QGIS o è necessario eseguire lo script ad ogni riavvio?
Blairath,

@poellinf - Come descritto in questo post: esiste un modo per eseguire uno script Python all'apertura di un progetto QGIS? , puoi creare uno script startup.py (che esegue lo script ogni volta che QGIS si avvia) o creare una macro di progetto (che viene eseguita solo sul tuo progetto). Utilizzando entrambi i metodi, dovrai aggiungere import qgis; from qgis.core import QgsMapLayerRegistrynella tua sceneggiatura :)
Joseph,

6

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.