Crear un cuadro combinado de add-in de Python

Crear un cuadro combinado de add-in

Un cuadro combinado contiene un campo editable y una lista desplegable. El usuario puede seleccionar un valor de la lista desplegable que aparece en la solicitud del usuario. Si hace el cuadro combinado editable, el cuadro combinado incluirá un campo editable en el que el usuario puede introducir un valor. El cuadro combinado de escala en ArcMap es un buen ejemplo de un cuadro combinado. Cuando los datos con un sistema de coordenadas conocido se agregan a ArcMap, el cuadro combinado de escala se habilita ofreciéndole al usuario un conjunto de escalas predefinidas de donde elegir. También le permite escribir una escala deseada que no existe en la lista de opciones, y el mapa se muestra basado en el valor agregado.

Este tema le guía a través del proceso de creación de un cuadro combinado en una nueva barra de herramientas mediante el Asistente de add-in de Python. Antes de comenzar este flujo de trabajo, asegúrese de haber creado un proyecto de add-in en ArcMap y de haber especificado la configuración del proyecto. Para obtener más información, consulte Crear un proyecto de add-in. Mientras que este flujo de trabajo le muestra cómo crear un cuadro combinado para ArcMap, puede utilizar este proceso para agregar un cuadro combinado a cualquier aplicación ArcGIS for Desktop. En este tema se examina el proceso de creación de un cuadro combinado con la lista de capas de la tabla de contenido. Seleccionar una capa creará una red que cubre la extensión completa de la capa. A continuación se examina con mayor detalle la clase de Python creada por el Asistente de add-ins para explorar las propiedades y los métodos que proporcionan la funcionalidad a su cuadro combinado.

Crear un cuadro combinado de Add-In consta de los siguientes pasos:

Pasos:
  1. Crear una barra de herramientas.

    Una vez que haya introducido la configuración necesaria del proyecto, haga clic en la pestaña Contenido de Add-in y empiece manifestando su personalización de add-ins. Un cuadro combinado puede residir en una barra de herramientas, pero no puede existir en un menú. Consulte Crear una barra de herramientas de Add-In para ver los pasos necesarios para crear una barra de herramientas.

  2. Crear el cuadro combinado.

    Una vez que haya introducido las propiedades de la barra de herramientas, puede crear un nuevo cuadro combinado. Haga clic con el botón derecho del ratón en la nueva barra de herramientas y seleccione Nuevo cuadro combinado desde el menú contextual.

    Establecer propiedades del cuadro combinado en el Asistente de Add-In

    El cuadro combinado tiene gran cantidad de propiedades para que establezca. Estas propiedades se almacenan en el archivoconfig.xml del proyecto. La siguiente es una lista de todas las propiedades con una explicación para cada una.

    Propiedad

    Descripción

    Título (necesario)

    Define el título del cuadro combinado. La siguiente ilustración muestra el título utilizado en el ArcGIS Add-In Manager para ayudar a identificar los diferentes tipos de personalizaciones disponibles (el tipo de add-in se identifica entre paréntesis):

    Las propiedades del cuadro combinado que se muestran en Add-In Manager

    Clase(necesaria)

    La clase de Python es donde escribe su lógica comercial para el cuadro combinado. Esta clase es importante porque se ejecuta siempre que el cuadro combinado se edita o cambia la selección. Utilice la convención de nombres de Python cuando construya su clase. Las clases de Python utilizan la notación de palabras mayúsculas. En este ejemplo, se crea una clase denominada "LayersComboBox".

    Id.(necesario)

    El único nombre que se utiliza para identificar el cuadro combinado. Es posible crear más de un cuadro combinado para un proyecto determinado; este Id. se utiliza para distinguir entre los diferentes cuadros combinados. Lo ideal sería que usted sustituyera el ID predeterminado con un valor más significativo. El Id. no debe tener espacios. Puede utilizar guiones bajos para unir palabras. No debe utilizar palabras clave de Python. Consulte la documentación de Python en relación a las palabras reservadas.

    Información sobre herramientas (opcional)

    Una breve descripción que aparece cuando detiene el puntero del ratón sobre el cuadro combinado en una aplicación de escritorio.

    Mensaje (opcional)

    Una descripción detallada de lo que hace el cuadro combinado. El mensaje aparece debajo de las herramientas de función cuando detiene el puntero del ratón sobre el cuadro combinado.

    Texto de sugerencia (opcional)

    El texto que se muestra en el cuadro combinado cuando no está activo en la aplicación de escritorio. Este texto se puede utilizar para enseñar a los usuarios acerca de los tipos de elementos que seleccionan o sobre el tipo de elementos que necesitan para seleccionar desde el cuadro combinado.

    La parte final del cuadro combinado es el título y el contenido de ayuda. Estas propiedades le permiten proporcionar la información que se utilizará cuando un usuario inicie la ayuda contextual. Estos son temas emergentes que permanecen en pantalla hasta que el usuario haga clic en otro lugar.

    Las siguientes propiedades conforman la sección de ayuda contextual:

    Propiedad

    Descripción

    Encabezamiento (opcional)

    Indica de qué trata el contenido de la ayuda

    Contenido (opcional)

    Contenido de ayuda para el cuadro combinado

    Una vez que haya terminado de introducir las propiedades, puede hacer clic en el botón Guardar en la parte inferior del asistente. De esta forma se crearán todos los archivos y carpetas necesarios dentro de su carpeta de trabajo.

  3. Editar la secuencia de comandos de Python.

    En esta fase, ha terminado de agregar los valores para las propiedades necesarios para definir el cuadro combinado de add-in. El siguiente paso en este flujo de trabajo es editar la secuencia de comandos de Python y actualizar la clase de Python para incluir la funcionalidad para crear una red de polígonos. El cuadro combinado se completará con la lista de capas del marco de datos activo. Cuando una capa se selecciona desde el cuadro combinado, una red se crea utilizando la extensión de la capa con un tamaño establecido en 10 filas por 10 columnas. Para agregar la funcionalidad del cuadro combinado, realice los siguientes pasos:

    1. Edite la secuencia de comandos de Python en la carpeta Instalar que se encuentra en la carpeta de trabajo que usted creó sirviéndose del asistente.

      Existirá una clase con el mismo nombre que el que se introdujo a través del asistente. No debería cambiar el nombre de esta clase, ya que se hace referencia al nombre de clase en el archivo config.xml. La clase consta de varias funciones y las propiedades que se describen en el tema de Clase del cuadro combinado.

    2. Actualice las funciones tal y como se muestra a continuación.

      Este código proporciona la funcionalidad para crear una red de polígonos con 10 filas y 10 columnas mediante la extensión de la capa seleccionada desde el cuadro combinado.

      # Business logic to implement the ComboBox def __init__(self):         self.editable = True         self.enabled = True  def onSelChange(self, selection):  	# When a new layer is selected, create a new fishnet using the extent of layer. 	layer = arcpy.mapping.ListLayers(self.mxd, selection)[0] 	desc = arcpy.Describe(layer.dataSource) 	extent = desc.Extent 	fishnet = arcpy.CreateFishnet_management(r'in_memory\fishnet', 	                '%f %f' %(extent.XMin, extent.YMin), 	                '%f %f' %(extent.XMin, extent.YMax), 	                0, 0, 10, 10, 	                '%f %f' %(extent.XMax, extent.YMax), 	                'NO_LABELS', 	                '%f %f %f %f' %(extent.XMin, extent.YMin, extent.XMax, extent.YMax), 'POLYGON') 	arcpy.RefreshActiveView()  def onFocus(self, focused):    # When the combo box has focus, update the combo box with the list of layer names. 	if focused: 		self.mxd = arcpy.mapping.MapDocument('current') 		layers = arcpy.mapping.ListLayers(self.mxd) 		self.items = [] 		for layer in layers: 			self.items.append(layer.name)
      
    3. Guarde la secuencia de comandos.
  4. Probar el cuadro combinado.

    Una vez que haya creado el cuadro combinado y haya agregado el código de la secuencia de comandos, es importante crear el archivo add-in y probar el add-in antes de compartirlo. Para más información sobre estos pasos, consulte Probar un add-in.

  5. Compartir el add-in

    Después de probar el cuadro combinado y confirmar que funciona como se espera, está listo para implementar y compartir el add-in. Para obtener más información, consulte Compartir add-ins.

Temas relacionados

9/11/2013