Ich möchte eine GUI in Python für die ArcGIS-Geoverarbeitung entwickeln.
Kann ich PyQT für die GUI-Programmierung in ArcGIS verwenden?
Ich habe auch überlegt, Tkinter und wxPython zu verwenden.
Ich würde die Notwendigkeit in Frage stellen, Ihre eigene GUI für die Geoverarbeitung zu verwenden.
Die Idee eines Geoverarbeitungswerkzeugs ist, dass es die Standardschnittstellen durchläuft (das GP-Fortschrittsdialogfeld, wenn es für Nachrichten aktiviert ist, und ein Fortschrittsdialogfeld, das GP-Werkzeugdialogfeld zum Festlegen von Parametern und Ausführen des Werkzeugs usw.) und ich möchte das hören Use Case für den Versuch, das alles zu umgehen.
Alles in allem: Es kommt darauf an, was für Sie am besten funktioniert.
Ich habe nicht erwähnt, dass PyQT in ArcMap und anderen Programmen mit eigenen Ereignisschleifen etwas stabiler zu funktionieren scheint als Wx oder Tk. Wx- und Tk-Programme sind in der Regel die einzigen UI-Threads, die in einem Prozess ausgeführt werden, und verhalten sich schlecht zu den Ereignisschleifen in anderen GUI-Programmen.
Ich bin bei Jason - Sie sollten wirklich die Notwendigkeit einer Geoverarbeitungs-GUI in Betracht ziehen, da das Dialogfeld "ArcGIS-Geoverarbeitungsfortschritt" (mindestens in 9.3.1, keine Informationen zu 10) ein wenig an Ihre Anforderungen angepasst werden kann (Hinzufügen) Nachrichten, Logfiles, Fortschrittsbalken und so weiter).
Nach meiner Erfahrung ist Tkinter leicht zu verstehen, aber kompliziert, wenn es um Out-of-the-Box-Designs geht. Es gibt auch Zeiten, in denen ArcGIS nicht gut funktioniert (Fenster verschwinden usw.). Es gibt eine "vereinfachte" GUI-Bibliothek namens EASYGUI, die auf Tkinter basiert und viel besser und einfacher zu steuern ist. Ich habe ein bisschen damit gespielt und fand es viel freundlicher als Tkinter.
Ich habe versucht, was Sie tun möchten, und Jason hat Recht - verwenden Sie die integrierten Tools. Wenn Sie versuchen, eine beliebige Menge von Python-GUI-Widgets innerhalb des Arcmap-Prozesses auszuführen, treten verschiedene Probleme auf - ich habe es versucht. Am besten führen Sie Ihre GUI außerhalb des Prozesses aus und kommunizieren über COM Arcobjects mit Arcmap, wobei IGeoprocessor zum Ausführen von Tools verwendet wird. Wenn in Ihrem Objekt jedoch nur Geoverarbeitungswerkzeuge und -skripts ausgeführt werden, können Sie kaum bessere Ergebnisse erzielen, als eigene Toolbox-Werkzeuge zu erstellen und die Standardwerkzeugschnittstellen zu verwenden.