| | |
| | | from qgis.PyQt.QtWidgets import * |
| | | from qgis.PyQt.QtXml import * |
| | | |
| | | |
| | | def setChild(project, root, showLayers): |
| | | print('Group: ' + root.name()) |
| | | for node in root.children(): |
| | | # QgsLayerTreeLayer |
| | | if isinstance(node, QgsLayerTreeGroup): |
| | | setChild(project, node, showLayers) |
| | | # QgsRasterLayer, QgsVectorLayer |
| | | else: |
| | | name = node.layer().name() |
| | | flag = name in showLayers |
| | | print(str(flag) + ", " + name) |
| | | |
| | | if not flag: |
| | | root.removeLayer(node.layer()) |
| | | # node.layer().setValid(False) |
| | | # lyr.setSubLayerVisibility(name, flag) |
| | | |
| | | |
| | | QgsApplication.setPrefixPath(r"C:/Program Files/QGIS 3.16/bin", True) |
| | | qgs = QgsApplication([], True) |
| | | qgs.initQgis() |
| | |
| | | project = QgsProject.instance() |
| | | project.read(r'E:/terrait/TianJin/LFServer/QGIS/Test.qgz') |
| | | print("FileName: " + project.fileName()) |
| | | |
| | | # layers = project.mapLayers().values() |
| | | # root = project.layerTreeRoot() |
| | | |
| | | # layout = QgsPrintLayout(project) |
| | | layout = QgsLayout(project) |
| | |
| | | layout.loadFromTemplate(doc, QgsReadWriteContext(), True) |
| | | |
| | | map = layout.itemById(r'地图') |
| | | print(math.ceil(map.scale())) |
| | | print('1:' + str(math.ceil(map.scale()))) |
| | | |
| | | # "阀室", "站场", "管道中心线", "矢量注记", "矢量图", "影像注记", "影像图" |
| | | showLayers = ["站场", "管道中心线", "影像注记", "影像图"] |
| | | root = project.layerTreeRoot() |
| | | setChild(project, root, showLayers) |
| | | # for layer in project.mapLayers().values(): |
| | | # if isinstance(layer, QgsRasterLayer): |
| | | # print(layer) |
| | | # if isinstance(layer, QgsVectorLayer): |
| | | # print(layer) |
| | | |
| | | exporter = QgsLayoutExporter(layout) |
| | | img_path = os.path.join(r"E:/terrait/TianJin/LFServer/QGIS", "render.png") |