Ist es möglich, einen Transparenzregler standardmäßig im Ebenenfenster anzuzeigen, dh direkt nach dem Hinzufügen einer neuen Ebene, anstatt ihn für jede Ebene manuell über Ebeneneigenschaften zu aktivieren?
Ist es möglich, einen Transparenzregler standardmäßig im Ebenenfenster anzuzeigen, dh direkt nach dem Hinzufügen einer neuen Ebene, anstatt ihn für jede Ebene manuell über Ebeneneigenschaften zu aktivieren?
Antworten:
Dies wurde im QGIS - Entwicklerforum kurz erwähnt, in dem Sie QgsMapLayer :: setCustomPropertylayer verwenden müssen , um das eingebettete Widget für Ihre Ebene zu aktivieren. Wir können dann ein itemAdded
Ereignis hinzufügen , sodass es beim Hinzufügen einer Ebene automatisch mit dem Transparenz-Widget angezeigt wird.
Sie könnten also in der Python-Konsole Folgendes verwenden :
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)
Getestet unter QGIS 2.18.3 für Win7 64-Bit.
Beispiel:
Einfügen von Code in die Python-Konsole und vor dem Hinzufügen von Shapefiles:
Ergebnis:
legend.itemAdded.disconnect(transparency_slider)
die Python-Konsole eingeben ;)
import qgis
; from qgis.core import QgsMapLayerRegistry
in Ihrem Skript :)
Es gibt ein Plugin namens Raster-Transparenz, das, wie der Name schon sagt, ein andockbares Bedienfeld mit Schiebereglern zum Ändern der Transparenz einer ausgewählten Rasterebene öffnet.
Gehe zu Plugins> Plugins verwalten und installieren - Finde es und installiere. Ein neues Symbol wird in deinen Symbolleisten angezeigt.