Відповіді:
Про це коротко згадувалося на форумі розробників QGIS, де вам потрібно використовувати QgsMapLayer :: setCustomPropertylayer, щоб увімкнути вбудований віджет для вашого шару. Потім ми можемо додати itemAdded
подію, щоб кожен раз, коли доданий шар, він автоматично відображався за допомогою віджета прозорості.
Отже, ви можете використовувати щось подібне на консолі 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)
Тестовано на QGIS 2.18.3 для 64-розрядної версії Win7.
Приклад:
Вставлення коду в консоль python та перед додаванням форм-файлів:
Результат:
legend.itemAdded.disconnect(transparency_slider)
консоль пітона;)
import qgis
; from qgis.core import QgsMapLayerRegistry
за вашим сценарієм :)
Існує плагін під назвою «Растрова прозорість», який, як випливає з назви, відкриє док-панель із повзунками для зміни прозорості вибраного растрового шару.
Перейдіть до Плагіни> Керування та встановлення плагінів - Знайдіть і встановіть, на панелі інструментів з’явиться новий пов’язаний значок.