回答:
これは、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)
Win7 64ビット用QGIS 2.18.3でテスト済み。
例:
シェープファイルを追加する前に、Pythonコンソールにコードを挿入します。
結果:
legend.itemAdded.disconnect(transparency_slider)
Pythonコンソールで入力するだけ;)
import qgis
ます。from qgis.core import QgsMapLayerRegistry
あなたのスクリプトで:)