每个地理处理参数都包含一个默认控件。 这是地理处理窗格中参数的默认外观。 控件反映了数据类型以及参数是否接受一个或多个值。 地理处理框架支持有限数量的控件,用于修改地理处理窗格中显示的控件。
在脚本工具或 Python 工具箱工具中,可以使用 Parameter 对象的 controlCLSID 属性覆盖默认控件。
在脚本工具中,与大多数其他参数属性不同,控件无法通过工具属性对话框进行修改,必须在验证代码中进行设置。 在工具 ToolValidator 类的 __init__ 方法中设置 controlCLSID。
def __init__(self):
self.params = arcpy.GetParameterInfo()
self.params[1].controlCLSID = '{15F0D1C1-F783-49BC-8D16-619B8E92F668}'
在 Python 工具箱中,在工具类的 getParameterInfo 方法中定义参数后设置 controlCLSID。
extent = arcpy.Parameter(
displayName='Extent',
name='Extent',
datatype='GPExtent',
parameterType='Required',
direction='Input')
extent.controlCLSID = '{15F0D1C1-F783-49BC-8D16-619B8E92F668}'
范围
范围数据类型的默认控件如下显示:
使用值为 controlCLSID 的 {15F0D1C1-F783-49BC-8D16-619B8E92F668} 将控件更改为以下各项。 此控件不包括相交按钮 和输入的并集 按钮 。
数值(长整型和双精度)
长整型和双精度数据类型的默认控件,范围过滤器如下所示:
使用值为 controlCLSID 的 {C8C46E43-3D27-4485-9B38-A49F3AC588D9} 将滑动条添加至参数。
长整型和双精度数据类型的默认控件显示如下:
对于左定向的较大文本框,使用值为 controlCLSID 的 {7A47E79C-9734-4167-9698-BFB00F43AE41}。
复合
复合数据类型为用于组合至少两个数据类型的参数。 在以下示例中,复合数据类型由线性单位和字段数据类型组成。 控件基于第一个数据类型,通常使得难以正确添加其他数据类型的值。
使用值为 controlCLSID 的 {BEDF969C-20D2-4C41-96DA-32408CA72BF6} 将控件更改为以下各项。 此控件提供一个选择列表,用于将控件从一个数据类型切换为另一个,从而简化为参数使用的任何数据类型提供值的过程。
字符串
字符串数据类型通常用于支持一组关键字。 字符串数据类型的默认控件如下所示:
要支持接受多行文本块的参数,使用值为 controlCLSID 的 {E5456E51-0C41-4797-9EE4-5269820C6F0E}。
多值
具有值列表过滤器的多值字符串、字段、长整型和双精度数据类型的默认控件显示如下:
要支持接受选项选择列表的参数,使用值为 controlCLSID 的 {172840BF-D385-4F83-80E8-2AC3B79EB0E0}。
同样,要创建接受选项选择列表的参数并包含全选按钮,使用值为 controlCLSID 的 {38C34610-C7F7-11D5-A693-0008C711C8C1}。
要素图层
要素图层数据类型的默认控件显示如下:
要素图层数据类型支持要素类和要素图层作为输入。 要同时支持要素集,使用值为 controlCLSID 的 {60061247-BCA8-473E-A7AF-A2026DDE1C2D}。 使用工具时,单击编辑按钮 以交互的方式为工具输入创建要素。
注:
使用要素集数据类型创建相同的效果。
值表
默认情况下,当具有值表数据类型的参数具有三列或更多列时,这些列将垂直排列。
对于水平方向,使用 {1AA9A769-D3F3-4EB0-85CB-CC07C79313C8} 的值 controlCLSID。
默认情况下,值表数据类型接受多组值或行。 在某些情况下,将参数限制为一组值可能会更好。 若要通过删除添加另一个按钮 将值表数据类型限制为一组值,请使用 {1A1CA7EC-A47A-4187-A15C-6EDBA4FE0CF7} 的值 controlCLSID。