Câu trả lời:
Điều này đã được đề cập ngắn gọn trong QGIS - Diễn đàn dành cho nhà phát triển nơi bạn cần sử dụng QssMapLayer :: setCustomPropertylayer để bật tiện ích nhúng cho lớp của mình. Sau đó chúng ta có thể thêm một itemAdded
sự kiện để bất cứ khi nào một lớp được thêm vào, nó sẽ tự động được hiển thị với tiện ích trong suốt.
Vì vậy, bạn có thể sử dụng một cái gì đó như sau trong Bảng điều khiển 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)
Đã thử nghiệm trên QGIS 2.18.3 cho Win7 64 bit.
Thí dụ:
Chèn mã vào bảng điều khiển python và trước khi thêm shapefiles:
Kết quả:
legend.itemAdded.disconnect(transparency_slider)
vào bảng điều khiển python;)
import qgis
; from qgis.core import QgsMapLayerRegistry
trong kịch bản của bạn :)
Có một plugin có tên Raster Trans minh bạch, đúng như tên gọi, sẽ mở một bảng điều khiển có thể gắn được với các thanh trượt để thay đổi độ trong suốt của lớp raster đã chọn.
Chuyển đến Plugin> Quản lý và cài đặt plugin - Tìm và cài đặt, một biểu tượng liên kết mới sẽ xuất hiện trên thanh công cụ của bạn.