Das pythonaddins-Modul enthält Funktionen zur Unterstützung von Python-Add-Ins.
Funktion | Erläuterung | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OpenDialog({title}, {multiple_selection}, {starting_location}, {button_caption}, {filter}, {filter_label}) | Öffnet ein Dialogfeld zur Auswahl von einem oder mehreren GIS-Datasets. Diese Funktion gibt den vollständigen Pfad des ausgewählten Datasets zurück. Wenn mehrere Datasets ausgewählt sind, wird eine Liste der vollständigen Pfade zurückgegeben. Es gibt keine Filterung der Eingabe-Datasets (z. B. Filterung nach Point-Feature-Classes).
| ||||||||||||
SaveDialog({title}, {name_text}, {starting_location}, {filter}, {filter_label}) | Öffnet ein Dialogfeld zum Speichern der Daten. Diese Funktion gibt den vollständigen Pfad für das zu speichernde Dataset zurück.
| ||||||||||||
GPToolDialog(toolbox, tool_name) | Öffnet das Dialogfeld eines Geoverarbeitungswerkzeugs.
| ||||||||||||
MessageBox(message, title, {mb_type}) | Zeigt ein Meldungsfeld an. Diese Funktion gibt einen Zeichenfolgenwert entsprechend der gedrückten Meldungsschaltfläche zurück.
| ||||||||||||
GetSelectedTOCLayerOrDataFrame() | Gibt den ausgewählten Layer oder Datenrahmen aus dem Inhaltsverzeichnis zurück. | ||||||||||||
GetSelectedCatalogWindowPath() | Gibt den vollständigen Pfad des ausgewählten Elements im Fenster Katalog zurück. | ||||||||||||
ProgressDialog() | Gibt ein ProgressDialog-Objekt zurück. Das Statusdialogfeld-Objekt wird automatisch eingeblendet, wenn Sie zum with-Block wechseln, und es wird ausgeblendet, wenn Sie ihn verlassen. Siehe Beispiel-Codeausschnitt unten. Folgende Eigenschaften sind verfügbar:
|
mb_type-Code | Meldungsfeldtyp |
---|---|
0 | Nur OK |
1 | OK/Abbrechen |
2 | Abbrechen/Wiederholen/Ignorieren |
3 | Ja/Nein/Abbrechen |
4 | Ja/Nein |
5 | Wiederholen/Abbrechen |
6 | Abbrechen/Erneut versuchen/Fortfahren |
Diese Add-In-Schaltfläche verwendet OpenDialog(), um einen Satz Layer-Dateien auszuwählen und die Layer zum ausgewählten Datenframe hinzuzufügen.
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)
Diese Add-In-Schaltfläche öffnet ein Geoverarbeitungswerkzeug.
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')
Beispiel für das Statusdialogfeld: Testen Sie dies im Python-Fenster in 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")
Lassen Sie nur das Öffnen von Textdateien zu.
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())