El módulo pythonaddins incluye funciones para dar soporte a los add-in de Python.
Función | Explicación | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OpenDialog({title}, {multiple_selection}, {starting_location}, {button_caption}, {filter}, {filter_label}) | Abre un cuadro de diálogo para elegir uno o más datasets SIG. Esta función muestra la ruta completa del dataset seleccionado. Si se escogen varios datasets, muestra una lista de las rutas completas. No hay filtrado de los datasets de entrada (por ejemplo, filtro sólo para clases de entidad de puntos).
| ||||||||||||
SaveDialog({title}, {name_text}, {starting_location}, {filter}, {filter_label}) | Abre un cuadro de diálogo para guardar los datos. Esta función muestra la ruta completa del dataset que se va a guardar.
| ||||||||||||
GPToolDialog(toolbox, tool_name) | Abre un cuadro de diálogo de la herramienta de geoprocesamiento.
| ||||||||||||
MessageBox(message, title, {mb_type}) | Muestra un cuadro de mensaje. Esta función muestra el valor de una cadena de caracteres que representa al botón de mensaje pulsado.
| ||||||||||||
GetSelectedTOCLayerOrDataFrame() | Muestra la capa o el marco de datos seleccionado en la tabla de contenidos. | ||||||||||||
GetSelectedCatalogWindowPath() | Devuelve la ruta completa del elemento seleccionado en la ventana Catálogo. | ||||||||||||
ProgressDialog() | Devuelve un objeto ProgressDialog. El objeto de cuadro de diálogo Progreso se visualiza automáticamente cuando entra en el bloque with y desaparece cuando sale de él. Vea un fragmento de código de ejemplo a continuación. Las propiedades son:
|
código tipo_mb | Tipo de la casilla de mensaje |
---|---|
0 | Aceptar sólo |
1 | OK/Cancelar |
2 | Interrumpir/volver a intentar/ignorar |
3 | Sí/No/Cancelar |
4 | Sí/No |
5 | Volver a intentar/Cancelar |
6 | Cancelar/Volver a intentar/Continuar |
Este botón de add-in utiliza OpenDialog() para seleccionar un conjunto de archivos de capa y añade cada capa al marco de datos seleccionado.
import arcpy
import pythonaddins
class AddLayers(object):
def __init__(self):
self.enabled = True
self.checked = False
def onClick(self):
layer_files = pythonaddins.OpenDialog('Select Layers', True, r'C:\GISData', 'Add')
mxd = arcpy.mapping.MapDocument('current')
df = pythonaddins.GetSelectedTOCLayerOrDataFrame()
if not isinstance(df, arcpy.mapping.Layer):
for layer_file in layer_files:
layer = arcpy.mapping.Layer(layer_file)
arcpy.mapping.AddLayer(df, layer)
else:
pythonaddins.MessageBox('Select a data frame', 'INFO', 0)
Este botón de add-in abre una herramienta de geoprocesamiento.
import arcpy
import pythonaddins
class OpenGPTool(object):
def __init__(self):
self.enabled = True
self.checked = False
def onClick(self):
pythonaddins.GPToolDialog(r'C:\MyTools\WaterStudy.tbx', 'GroundWaterYield')
Ejemplo de diálogo de Progreso: pruébelo en la ventana de Python en ArcGIS for Desktop.
import pythonaddins
with pythonaddins.ProgressDialog as dialog:
dialog.title = "Progress Dialog"
dialog.description = "Copying a large feature class."
dialog.animation = "File"
for i in xrange(100):
dialog.progress = i
time.sleep(0.125)
if dialog.cancelled:
raise Exception("Ooops")
Solo permite que se abran los archivos de texto.
import os
class MyValidator(object):
def __str__(self):
return "Text files(*.txt)"
def __call__(self, filename):
if os.path.isfile(filename) and filename.lower().endswith(".txt"):
return True
return False
filename = pythonaddins.OpenDialog(r"c:\files", filter=MyValidator())