| | |
| | | from qgis.PyQt.QtXml import * |
| | | |
| | | |
| | | def setLayersValid(root, showLayers): |
| | | def setLayersValid(project, showLayers): |
| | | for layer in project.mapLayers().values(): |
| | | flag = layer.name() in showLayers |
| | | print(layer.name() + ": " + str(flag)) |
| | | # if not flag: |
| | | # project.removeMapLayer(layer) |
| | | layer.setValid(flag) |
| | | |
| | | |
| | | def setItemVisibility(root, showLayers): |
| | | print('Group: ' + root.name()) |
| | | for node in root.children(): |
| | | # QgsLayerTreeLayer |
| | | if isinstance(node, QgsLayerTreeGroup): |
| | | setChild(node, showLayers) |
| | | setItemVisibility(node, showLayers) |
| | | # QgsRasterLayer, QgsVectorLayer |
| | | else: |
| | | name = node.layer().name() |
| | | flag = name in showLayers |
| | | print(str(flag) + ", " + name) |
| | | |
| | | if not flag: |
| | | # if not flag: |
| | | # root.removeLayer(node.layer()) |
| | | node.layer().setValid(False) |
| | | # node.layer().setValid(False) |
| | | node.setItemVisibilityChecked(flag) |
| | | |
| | | |
| | | QgsApplication.setPrefixPath(r"C:/Program Files/QGIS 3.16/bin", True) |
| | |
| | | print('1:' + str(math.ceil(map.scale()))) |
| | | |
| | | # "阀室", "站场", "管道中心线", "矢量注记", "矢量图", "影像注记", "影像图" |
| | | showLayers = ["阀室", "管道中心线", "影像注记", "影像图"] |
| | | # root = project.layerTreeRoot() |
| | | # setLayersValid(project, root, showLayers) |
| | | for layer in project.mapLayers().values(): |
| | | flag = layer.name() in showLayers |
| | | if not flag: |
| | | layer.setValid(flag) |
| | | print(layer.name() + ": " + str(flag)) |
| | | showLayers = ["站场", "管道中心线", "影像注记", "影像图"] |
| | | root = project.layerTreeRoot() |
| | | # setLayersValid(project, showLayers) |
| | | setItemVisibility(root, showLayers) |
| | | |
| | | layout.refresh() |
| | | map.refresh() |