创建 Python 加载项按钮
按钮是一种最简单的自定义形式,单击按钮后可以执行一些业务逻辑。
本主题将指导您完成使用 Python 加载项向导在新工具条上创建按钮这一过程。开始此工作流之前,请确保已创建 ArcMap 加载项项目并指定项目设置。有关详细信息,请参阅创建加载项项目。此工作流介绍的是如何为 ArcMap 创建按钮,但您也可以使用此过程将按钮添加到任何 ArcGIS for Desktop 应用程序。本主题详细介绍了“缩放至所选要素”这一简单按钮的创建过程。之后会更详细地介绍通过向导创建的 Python 类,以探讨为按钮提供功能的属性和方法。
创建加载项按钮包含以下几步:
- 创建工具条或菜单
输入所需项目设置后,单击加载项内容选项卡开始声明加载项自定义内容。按钮可以位于工具条上或菜单上。本例中,将创建一个新的工具条作为按钮的容器。有关创建自己的工具条的步骤,请参阅创建加载项工具条。
- 创建按钮
输入工具条属性后,即可创建新按钮。右键单击名为“工具条”的新工具条并选择新建按钮。
按钮具有多个属性需要用户设置。以下列出了所有这些属性及其对应的说明。这些属性存储在项目的 config.xml 文件中。
属性 描述 标题(必填)
定义按钮标题。下图显示了 ArcGIS 加载项管理器中使用的标题,有助于标识不同类型的可用自定义内容(加载项类型在括号中标识):
下图显示了用来标识工具条上按钮的作为文本的标题:
类(必填)
在桌面应用程序中单击按钮后执行的 Python 类。Python 类是写入按钮业务逻辑的位置。构造类时应使用 Python 单词首字母大写命名约定,例如应使用“ZoomToSelectedFeatures”而不是“zoomtoselectedfeatures”。
ID(必填)
用于标识按钮的唯一名称。您可以为给定项目创建多个按钮,此 ID 便用来区分不同的按钮。理想情况下,应使用更有意义的值替换默认 ID。ID 不应包含任何空格。可以使用下划线连接单词。不应使用 Python 关键字。有关保留字信息,请查阅 Python 文档。
工具提示(可选)
将鼠标指针悬停在桌面应用程序中的按钮上方时出现的简短描述。
消息(可选)
按钮功能的详细描述。将鼠标指针悬停在按钮上方时,此消息会显示在工具提示下方。
图像(可选)
此图像应为 16 * 16 像素的图像,用于符号化按钮。图像格式应为任意一种常用图片格式(即 .bmp、.jpg 等)。图像将复制到加载项项目中创建的图像文件夹中。
按钮的最后部分是“帮助”标题和内容。这些属性允许您提供一些信息并在用户调用上下文相关帮助时加以使用。这些信息为弹出主题,在用户单击其他位置之前,会一直保留在屏幕上。
以下属性组成了该上下文相关帮助部分:
属性 描述 标题(可选)
指示帮助内容与哪方面相关。
内容(可选)
按钮的帮助内容。
输入属性后,可单击向导底部的保存按钮。将在工作文件夹中创建所有必需的文件和文件夹。
- 编辑 Python 脚本
此时已为定义加载项按钮所需的属性添加了值。此工作流的下一步是编辑 Python 脚本并更新 Python 类,以包含“缩放至所选要素”这一功能。如果未选择任何要素,则会缩放至所有图层的全图。要将此功能添加到自定义按钮,执行以下步骤:
- 在通过向导创建的工作文件夹下的安装文件夹中编辑 Python 脚本。
将生成与如上输入的类属性同名的类。由于会在 config.xml 文件中引用这一类名称,因此不应重命名此类。有关类的各个函数及属性的说明,请参阅按钮类主题。
- 将以下脚本代码添加到 onClick(self) 函数中。
以下代码可提供缩放至所选要素这一功能。
# Implementation of OnClick method of Button's class def onClick(self): # Get the current map document and the first data frame. mxd = arcpy.mapping.MapDocument('current') df = arcpy.mapping.ListDataFrames(mxd)[0] # Call the zoomToSelectedFeatures() method of the data frame class df.zoomToSelectedFeatures()
- 保存脚本。
- 在通过向导创建的工作文件夹下的安装文件夹中编辑 Python 脚本。
- 测试按钮
创建按钮并添加脚本代码后,必须生成加载项文件并测试加载项,然后才能进行共享。相关步骤信息,请参阅测试加载项。
- 共享加载项
测试并确认按钮能按预期方式工作后,即可部署和共享加载项。有关详细信息,请参阅共享加载项。