Sviluppare la GUI in Python per il geoprocessing di ArcGIS usando PyQT / Tkinter / wxPython?


13

Voglio sviluppare una GUI in Python per il geoprocessing di ArcGIS.

Posso usare PyQT per la programmazione della GUI in ArcGIS?

Ho anche considerato l'utilizzo di Tkinter e wxPython.

Risposte:


21

Vorrei mettere in dubbio la necessità di utilizzare la tua GUI per il Geoprocessing.

L'idea di uno strumento di geoprocessing è che passa attraverso le interfacce standard (la finestra di dialogo di avanzamento GP se abilitata per i messaggi e una finestra di avanzamento, la finestra di dialogo dello strumento GP per l'impostazione dei parametri e l'esecuzione dello strumento, ecc.) E mi piacerebbe sentire il utilizzare il caso per tentare di eludere tutto.

Tutto sommato: tutto dipende da ciò che funziona meglio per te.

  1. Tkinter è integrato ma un po 'brutto e difficile da mettere in atto qualcosa di sofisticato, ma se ci scrivi un'interfaccia utente, funzionerà praticamente ovunque .
  2. Wx e PyQT sono entrambi vicini a equivalenti dal punto di vista funzionale, anche se gli esempi di wxPython sono fantastici da cui imparare e gli strumenti di sviluppo di QT sono un po 'più belli. Guarda le API di entrambi e determina quale è più gradevole da usare.

Non ho menzionato il fatto che PyQT sembra funzionare in modo leggermente più stabile in ArcMap e in altri programmi con i propri loop di eventi rispetto a Wx o Tk. I programmi Wx e Tk tendono ad aspettarsi di essere i soli thread dell'interfaccia utente in esecuzione in un processo e si comportano in modo errato con i cicli di eventi in altri programmi della GUI.


8

Sono con Jason - Dovresti davvero prendere in considerazione la necessità di una GUI di geoprocessing, poiché la finestra di dialogo sull'avanzamento del geoprocessing di ArcGIS (almeno in 9.3.1, non ne conosco 10) può essere personalizzata un po 'per adattarsi alle tue esigenze (aggiungendo messaggi, file di registro, barre di avanzamento e simili).

In base alla mia esperienza, Tkinter è facile da capire ma complicato quando si vogliono progettazioni pronte all'uso. Inoltre, a volte non interagisce molto bene con ArcGIS (finestre che scompaiono e così via). Esiste una libreria GUI "semplificata" chiamata EASYGUI che si basa su Tkinter ed è molto più bella e più facile da controllare. Ci ho giocato un po 'e l'ho trovato molto più amichevole di Tkinter.


4

Ho provato quello che vuoi fare e Jason ha ragione: usa gli strumenti integrati. Se provi a eseguire praticamente qualsiasi set di widget guy python all'interno del processo Arcmap, ti imbatterai in problemi di vario genere: l'ho provato. È meglio eseguire la GUI all'esterno del processo e parlare con Arcmap tramite COM Arcobjects, utilizzando IGeoprocessor per eseguire gli strumenti. Ma se il tuo oggetto esegue semplicemente strumenti e script di geoprocessing, non puoi davvero fare molto meglio che costruire i tuoi strumenti di toolbox e utilizzare le interfacce degli strumenti standard.


2

Potresti semplicemente creare la GUI in .NET o Mono e quindi eseguire lo script Python attraverso l' oggetto Process .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.