今天将继续分享QGIS 3.16工程文件属性的设置,包括宏(Macros)和QGIS服务器两个部分。
01 宏(Macros)
【工程】->【属性】->【宏】标签页提供工程文件相关联的宏命令设置。
QGIS中的宏(Macros),指的是由一些列预定义的Python语句组成的批处理命令集合,凡是可以在Python控制台中执行的语句,均可以宏的形式执行。
目前,与工程文件绑定的宏仅提供了openProject(), saveProject() 和 closeProject(),分别对应于打开工程、保存工程和关闭工程时执行。默认情况下,工程文件的Python 宏处于未启用状态,下方的Python宏命令编辑区不可编辑,且三个宏只有一个语句:pass。在Python语言pass中表示空语句,不做任何事情,一般用做占位语句,是为了保持程序结构的完整性。
如果需要在一个工程文件打开时自动执行某些动作,可以勾选“Python 宏”复选框(一旦勾选,下方的Python宏命令编辑区将进入可编辑状态),在openProject()宏中将pass注释掉,加入自定义的Python语句,那么只要打开该工程,这些语句将自动执行。例如,我想让工程文件每次打开时提示消息:“这是一个测试工程”,可以在openProject()添加如下代码实现:
from qgis.gui import (
QgsMessageBar,
)
def openProject():
from qgis.core import Qgis
QgsMessageBar().pushMessage("测试", "这是一个测试宏", level=Qgis.Critical, duration=0)
def saveProject():
pass
def closeProject():
pass
红色框内的QgsMessageBar()为关键代码,表示输出一个名称为“测试”的消息,内容是“这是一个测试宏”,消息级别为“Critical”。
保存当前工程文件,当再次打开该工程时,在地图窗口上方将出现安全警告消息框,提示“Python宏当前无法运行”:
该警告是出于安全考虑,默认情况下QGIS不能运行未经允许的任何外部代码,点击右方的【启用宏】按钮,允许代码运行,此时可以在消息框看到自定义的消息内容:
如果要默认情况下启用宏,可以打开菜单【设置】->【选项】->【通用】-