pythonaddins モジュールには、Python アドインをサポートする関数が用意されています。
関数 | 説明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OpenDialog({title}, {multiple_selection}, {starting_location}, {button_caption}, {filter}, {filter_label}) | 1 つまたは複数の GIS データセットを選択するダイアログ ボックスを開きます。この関数は選択したデータセットのフル パスを返します。複数のデータセットを選択した場合は、フル パスのリストが返されます。入力データセットに対するフィルター処理 (たとえば、ポイント フィーチャクラスのみのフィルター処理) は行われません。
| ||||||||||||
SaveDialog({title}, {name_text}, {starting_location}, {filter}, {filter_label}) | データを保存するダイアログ ボックスを開きます。この関数は保存するデータセットのフル パスを返します。
| ||||||||||||
GPToolDialog(toolbox, tool_name) | ジオプロセシング ツール ダイアログ ボックスを開きます。
| ||||||||||||
MessageBox(message, title, {mb_type}) | メッセージ ボックスを表示します。この関数は、押されたメッセージ ボタンを表す文字列値を返します。
| ||||||||||||
GetSelectedTOCLayerOrDataFrame() | [コンテンツ] ウィンドウで選択されているレイヤーまたはデータ フレームを返します。 | ||||||||||||
GetSelectedCatalogWindowPath() | カタログ ウィンドウで選択されているアイテムのフル パスを返します。 | ||||||||||||
ProgressDialog() | ProgressDialog オブジェクトを返します。Progress dialog (進捗状況ダイアログ) オブジェクトは、with ブロックを入力すると自動的に表示され、そのままの状態にしておくと表示されなくなります。次のサンプル コード スニペットをご参照ください。 次のようなプロパティがあります。
|
mb_type コード | メッセージ ボックスのタイプ |
---|---|
0 | OK のみ |
1 | OK/キャンセル |
2 | 停止/再試行/無視 |
3 | はい/いいえ/キャンセル |
4 | はい/いいえ |
5 | 再試行/キャンセル |
6 | キャンセル/再試行/継続 |
次のアドイン ボタンは、OpenDialog() を使用してレイヤー ファイルのセットを選択し、各レイヤーを選択したデータ フレームに追加します。
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)
次のアドイン ボタンは、ジオプロセシング ツールを開きます。
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')
Progress Dialog (進捗状況ダイアログ) の例:ArcGIS for Desktop 内の Python ウィンドウで次のコード例をテストしてください。
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")
テキスト ファイルを開くことのみを許可します。
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())