Risposte:
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.
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.
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.
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.