Odpowiedzi:
Chciałbym zakwestionować potrzebę użycia własnego GUI do Geoprocessing.
Idea narzędzia geoprzetwarzania polega na tym, że przechodzi on przez standardowe interfejsy (okno postępu GP, jeśli jest włączone dla komunikatów i okno dialogowe postępu, okno dialogowe GP narzędzia do ustawiania parametrów i uruchamiania narzędzia itp.) I chciałbym usłyszeć przypadek użycia do próby obejścia tego wszystkiego.
Podsumowując: wszystko zależy od tego, co jest dla Ciebie najlepsze.
Nie wspomniałem, że PyQT wydaje się działać nieco bardziej stabilnie w ArcMap i innych programach z własnymi pętlami zdarzeń niż Wx lub Tk. Programy Wx i Tk zwykle oczekują, że będą jedynymi wątkami interfejsu użytkownika działającymi w procesie i będą źle działać z pętlami zdarzeń w innych programach GUI.
Jestem z Jasonem - naprawdę powinieneś wziąć pod uwagę konieczność korzystania z GUI do geoprzetwarzania, ponieważ okno postępu geoprzetwarzania ArcGIS (przynajmniej w 9.3.1, nie wiem o 10) można nieco dostosować, aby dostosować do twoich potrzeb (dodając wiadomości, pliki dziennika, paski postępu i tym podobne).
Z mojego doświadczenia wynika, że Tkinter jest łatwy do zrozumienia, ale skomplikowany, gdy chce mieć bardzo gotowe projekty. Są też momenty, że nie współdziała zbyt dobrze z ArcGIS (okna znikają i tak dalej). Istnieje „uproszczona” biblioteka GUI o nazwie EASYGUI, która jest oparta na Tkinter, i jest o wiele ładniejsza i łatwiejsza do kontrolowania. Bawiłem się trochę i uważałem, że jest o wiele bardziej przyjazny niż Tkinter.
Próbowałem tego, co chcesz zrobić, i Jason ma rację - użyj wbudowanych narzędzi. Jeśli spróbujesz uruchomić prawie dowolny zestaw widżetów GUI Pythona w procesie Arcmap, napotkasz różnego rodzaju kłopoty - próbowałem. Najlepiej uruchomić GUI poza procesem i porozmawiać z Arcmap poprzez COM Arcobjects, używając IGeoprocessor do uruchamiania narzędzi. Ale jeśli w twoim obiekcie są po prostu uruchomione narzędzia i skrypty geoprzetwarzania, naprawdę nie możesz zrobić nic lepszego niż zbudowanie własnego zestawu narzędzi i korzystania ze standardowych interfejsów narzędzi.