From d59ed5d1ab6910ed25b547b23c2c20510e8bc8d2 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 08 十一月 2022 20:31:39 +0800 Subject: [PATCH] 1 --- QGIS/render.py | 38 ++++++++++++++++++++++---------------- 1 files changed, 22 insertions(+), 16 deletions(-) diff --git a/QGIS/render.py b/QGIS/render.py index 62e73c8..21b2bc7 100644 --- a/QGIS/render.py +++ b/QGIS/render.py @@ -1,5 +1,6 @@ #!/usr/bin/env # -*- coding: utf-8 -*- +import os import sys import math import argparse @@ -11,11 +12,16 @@ from qgis.PyQt.QtXml import * +# 鑾峰彇瀹屾暣璺緞 +def get_full_path(): + return os.path.split(sys.argv[0])[0] + + # 鑾峰彇鍙傛暟 -def getArgs(): - argv = sys.argv[1:] - print("argv = ", argv) +def get_args(): + print("argv = ", sys.argv[1:]) parser = argparse.ArgumentParser(description='ArgUtils') + parser.add_argument("-src", type=str, default=get_full_path(), required=False) parser.add_argument("-qgz", type=str, default="Test.qgz", required=False) parser.add_argument("-qpt", type=str, default="Test.qpt", required=False) @@ -23,9 +29,9 @@ # 璁剧疆鍥惧眰鍙敤鎬� -def setLayersValid(project, showLayers): - for layer in project.mapLayers().values(): - flag = layer.name() in showLayers +def set_layers_valid(prj, show_layers): + for layer in prj.mapLayers().values(): + flag = layer.name() in show_layers print(layer.name() + ": " + str(flag)) # if not flag: # project.removeMapLayer(layer) @@ -33,19 +39,19 @@ # 璁剧疆鍥惧眰鍙鎬� -def setItemVisibility(root, showLayers): - print(root.name() + ': Group') - for node in root.children(): +def set_item_visibility(root_node, show_layers): + print(root_node.name() + ': Group') + for node in root_node.children(): # QgsLayerTreeLayer if isinstance(node, QgsLayerTreeGroup): - setItemVisibility(node, showLayers) + set_item_visibility(node, show_layers) # QgsRasterLayer, QgsVectorLayer else: name = node.layer().name() flag = name in showLayers print(name + ": " + str(flag)) # if not flag: - # root.removeLayer(node.layer()) + # root_node.removeLayer(node.layer()) # node.layer().setValid(False) node.setItemVisibilityChecked(flag) @@ -56,10 +62,10 @@ qgs.initQgis() # 鍔犺浇宸ョ▼ -args = getArgs() +args = get_args() project = QgsProject.instance() # project.read(r'Test.qgz') -project.read(args.qgz) +project.read(os.path.join(args.src, args.qgz)) print("FileName: " + project.fileName()) # layout = QgsPrintLayout(project) @@ -68,7 +74,7 @@ # 鍔犺浇妯℃澘 # with open(r'Test.qpt', 'r', encoding='utf-8') as f: -with open(args.qpt, 'r', encoding='utf-8') as f: +with open(os.path.join(args.src, args.qpt), 'r', encoding='utf-8') as f: template_content = f.read() doc = QDomDocument() doc.setContent(template_content) @@ -83,8 +89,8 @@ # showLayers = ["闃�瀹�", "绠¢亾涓績绾�", "鐭㈤噺娉ㄨ", "鐭㈤噺鍥�"] showLayers = layout.customProperty("layers").split(',') root = project.layerTreeRoot() -# setLayersValid(project, showLayers) -setItemVisibility(root, showLayers) +# set_layers_valid(project, showLayers) +set_item_visibility(root, showLayers) # 鍒锋柊 layout.refresh() -- Gitblit v1.9.3