ArcGIS Geoprocessing GUI – Developing with Python and PyQT/Tkinter/wxPython

arcpypyqttkinterwxpython

I want to develop a GUI in Python for ArcGIS geoprocessing.

Can I use PyQT for GUI programming in ArcGIS?

I have also considered using Tkinter and wxPython.

Best Answer

I would question the need to use your own GUI for Geoprocessing.

The idea of a geoprocessing tool is that it goes through the standard interfaces (the GP progress dialog if enabled for messages and a progress dialog, the GP tool dialog for setting parameters and running the tool, etc) and I'd like to hear the use case for trying to circumvent that all.

All in all: it's all a matter of what works best for you.

  1. Tkinter is built-in but kind of ugly and hard to get anything sophisticated up and running, but if you do write a UI in it, it'll run pretty much anywhere.
  2. Wx and PyQT are both close to functionally equivalent, though the wxPython examples are great to learn from and QT's developer tools are a little bit nicer. Look at the APIs of both and determine which one looks nicer for you to use.

I failed to mention that PyQT seems to work in a slightly more stable fashion in ArcMap and other programs with their own event loops than Wx or Tk. Wx and Tk programs tend to expect to be the only ui threads running in a process and misbehave with the event loops in other GUI programs.

Related Question