¿Es posible tener un control deslizante de transparencia que se muestra de forma predeterminada en la ventana de capas, es decir, directamente después de agregar una nueva capa, en lugar de tener que habilitar para cada capa manualmente a través de propiedades de capa?
Respuestas
¿Demasiados anuncios?Esto fue mencionado brevemente en QGIS - Desarrollador foro en el que usted necesita para utilizar QgsMapLayer::setCustomPropertylayer para habilitar integrado en el widget para tu capa. A continuación podemos añadir un itemAdded
evento, por lo que siempre que una capa se agrega, que será mostrado automáticamente con la transparencia del widget.
Así que usted podría utilizar algo como lo siguiente en la Consola de 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)
Probado en QGIS 2.18.3 para Win7 de 64 bits.
Ejemplo:
La inserción de código en la consola de python y antes de añadir los archivos de forma:
Resultado:
Existe un plugin llamado transparencia de la trama, que como su nombre indica, se abrirá un panel acoplable con deslizadores para cambiar la transparencia de una capa de rasterización seleccionada.
Ir a Plugins > administrar e instalar plugins - encontrar e instalar, un nuevo icono asociado aparecerán en tus barras de herramientas.