Làm cách nào để chuyển đổi mức độ hiển thị của lớp trong QGIS bằng Python?


12

Làm cách nào tôi có thể chuyển đổi mức độ hiển thị của lớp trong QGIS thông qua API Python?

Câu trả lời:


11

Đây là từ các tài liệu của QGIS, nếu bạn đang chạy QGIS => 1.5

from PyQt4 import QtCore, QtGui
from qgis import core, gui
i = qgis.utils.iface
# load a georeferenced raster layer
loadedLayer = i.addRasterLayer('c:\\data\\a_map.png')
# get legend
legend = i.legendInterface()
# check current visibility
legend.isLayerVisible(loadedLayer)
# set visibility off 
legend.setLayerVisible(loadedLayer, False)
# and on again!
legend.setLayerVisible(loadedLayer, True) 

Tôi đoán bạn sẽ trao đổi loadedLayer = i.addRasterLayer('c:\\data\\a_map.png')với lớp mà bạn muốn ẩn, bạn có thể sử dụng cái gì đó như:

QgsMapLayerRegistry.instance().mapLayer(QString theLayerId)

0

Câu trả lời được chấp nhận là không có sẵn cho QGIS3. Trong QGIS3, tôi sử dụng mã dưới đây:

QgsProject.instance().layerTreeRoot().findLayer(lyr.id()).setItemVisibilityChecked(False)

Ngoài ra, chúng ta có thể bật và tắt tất cả các lớp bằng cách:

bool = True # or False
root = QgsProject.instance().layerTreeRoot()
allLayers = root.layerOrder()
for layer in allLayers:
    root.findLayer(layer.id()).setItemVisibilityChecked(bool)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.