1

I would like to create a dialog box which pops up when the user click on a button from a Python Add-In toolbar.

The user will navigate to their preferred file and select any shapefiles they wish to add to ArcMap.

I found this code:

    import Tkinter, tkFileDialog
    root = Tkinter.Tk()
    root.withdraw()
    file_path = tkFileDialog.askopenfile()

but the dialog box is ALMOST opening and then ArcMap crashes.

3
  • Use PyQT instead Commented Apr 18, 2015 at 0:48
  • I am not familiar with PyQT. Is that another programming language? Commented Apr 18, 2015 at 2:45
  • It's another graphics library Commented Apr 18, 2015 at 2:46

1 Answer 1

4

Since you're using a python addin, you could use the pythonaddins.OpenDialog method. Slightly modified example based on the documentation:

This add-in button uses OpenDialog() to select a set of layer files and adds each layer to the selected data frame.

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 = mxd.activeDataFrame
        for dataset in datasets:
            layer = arcpy.mapping.Layer(dataset)
            arcpy.mapping.AddLayer(df, layer)
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.