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