Yanıtlar:
Bu, katmanınız için katıştırılmış widget'ı etkinleştirmek için QgsMapLayer :: setCustomPropertylayer kullanmanız gereken QGIS - Geliştirici forumunda kısaca belirtilmiştir . Daha sonra , bir katman eklendiğinde otomatik olarak saydamlık widget'ıyla gösterilmesi için bir etkinlik ekleyebiliriz .itemAdded
Böylece Python Konsolunda aşağıdakine benzer bir şey kullanabilirsiniz :
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)
Win7 64-bit için QGIS 2.18.3'te test edildi.
Misal:
Python konsoluna ve şekil dosyaları eklemeden önce kod ekleme:
Sonuç:
legend.itemAdded.disconnect(transparency_slider)
python konsolunda yazabilirsiniz ;)
import qgis
; from qgis.core import QgsMapLayerRegistry
senaryonuzda :)
Raster Transparency adlı bir eklenti var, adından da anlaşılacağı gibi, seçilen bir raster katmanının saydamlığını değiştirmek için kaydırıcılarla yerleştirilebilir bir panel açacak.
Eklentiler> Eklentileri yönet ve yükle'ye gidin - Bulun ve yükleyin, araç çubuklarınızda yeni bir ilişkili simge görünecektir.