¿Desarrollando GUI en Python para el geoprocesamiento ArcGIS usando PyQT / Tkinter / wxPython?

13

Quiero desarrollar una GUI en Python para el geoprocesamiento ArcGIS.

¿Puedo usar PyQT para la programación GUI en ArcGIS?

También he considerado usar Tkinter y wxPython.

BBG_GIS
fuente

Respuestas:

21

Me gustaría cuestionar la necesidad de usar su propia GUI para el geoprocesamiento.

La idea de una herramienta de geoprocesamiento es que pasa por las interfaces estándar (el cuadro de diálogo de progreso GP si está habilitado para mensajes y un cuadro de diálogo de progreso, el cuadro de diálogo herramienta GP para establecer parámetros y ejecutar la herramienta, etc.) y me gustaría escuchar el use el caso para tratar de eludir todo eso.

En definitiva: se trata de lo que funciona mejor para usted.

  1. Tkinter está incorporado, pero es un poco feo y difícil de poner en marcha algo sofisticado, pero si escribe una interfaz de usuario, se ejecutará prácticamente en cualquier lugar .
  2. Wx y PyQT son casi equivalentes funcionalmente, aunque los ejemplos de wxPython son excelentes para aprender y las herramientas de desarrollo de QT son un poco más agradables. Mire las API de ambos y determine cuál se ve mejor para usar.

No mencioné que PyQT parece funcionar de manera un poco más estable en ArcMap y otros programas con sus propios bucles de eventos que Wx o Tk. Los programas Wx y Tk tienden a esperar ser los únicos hilos de interfaz de usuario que se ejecutan en un proceso y se comportan mal con los bucles de eventos en otros programas GUI.

Jason Scheirer
fuente
8

Estoy con Jason : realmente debería considerar la necesidad de una GUI de geoprocesamiento, ya que el diálogo de progreso de geoprocesamiento de ArcGIS (al menos en 9.3.1, no sabe acerca de 10) se puede personalizar un poco para ajustarse a sus necesidades (agregando mensajes, archivos de registro, barras progresivas y demás).

Desde mi experiencia, Tkinter es fácil de entender pero complicado cuando se quieren diseños muy originales. Además, hay veces que no interactúa muy bien con ArcGIS (ventanas que desaparecen y demás). Hay una biblioteca GUI "simplificada" llamada EASYGUI que se basa en Tkinter y es mucho más agradable y fácil de controlar. Jugué un poco con él y me pareció mucho más amigable que Tkinter.

jonatr
fuente
4

He intentado lo que quieres hacer, y Jason tiene razón: usa las herramientas integradas. Si intenta ejecutar casi cualquier conjunto de widgets de interfaz gráfica de usuario de Python dentro del proceso Arcmap, se encontrará con problemas de varios tipos: lo he intentado. Es mejor ejecutar su GUI fuera del proceso y responder a Arcmap a través de COM Arcobjects, utilizando IGeoprocessor para ejecutar herramientas. Pero si su objeto simplemente ejecuta herramientas y scripts de geoprocesamiento, realmente no puede hacer mucho mejor que construir sus propias herramientas de caja de herramientas y usar las interfaces de herramientas estándar.

artwork21
fuente
2

Simplemente puede construir la GUI en .NET o Mono y luego ejecutar el script Python a través del objeto Process .

Donny V.
fuente