Mengembangkan GUI di Python untuk geoprosesing ArcGIS menggunakan PyQT / Tkinter / wxPython?

13

Saya ingin mengembangkan GUI di Python untuk geoprosesing ArcGIS.

Bisakah saya menggunakan PyQT untuk pemrograman GUI di ArcGIS?

Saya juga mempertimbangkan menggunakan Tkinter dan wxPython.

BBG_GIS
sumber

Jawaban:

21

Saya akan mempertanyakan kebutuhan untuk menggunakan GUI Anda sendiri untuk Geoprocessing.

Gagasan alat geoprocessing adalah bahwa ia melewati antarmuka standar (dialog progres GP jika diaktifkan untuk pesan dan dialog progres, dialog alat GP untuk mengatur parameter dan menjalankan alat, dll) dan saya ingin mendengar gunakan case untuk mencoba menghindari itu semua.

Semua dalam semua: itu semua masalah yang paling cocok untuk Anda.

  1. Tkinter adalah built-in tetapi agak jelek dan sulit untuk mendapatkan sesuatu yang canggih dan berjalan, tetapi jika Anda menulis UI di dalamnya, itu akan berjalan hampir di mana saja .
  2. Wx dan PyQT keduanya hampir sama secara fungsional, meskipun contoh wxPython bagus untuk dipelajari dan alat pengembang QT sedikit lebih baik. Lihatlah API keduanya dan tentukan mana yang terlihat lebih bagus untuk Anda gunakan.

Saya gagal menyebutkan bahwa PyQT tampaknya bekerja dengan cara yang sedikit lebih stabil di ArcMap dan program lain dengan loop acara mereka sendiri daripada Wx atau Tk. Program Wx dan Tk cenderung berharap menjadi satu-satunya utas ui yang berjalan dalam suatu proses dan bertingkah dengan loop acara di program GUI lainnya.

Jason Scheirer
sumber
8

Saya dengan Jason - Anda harus benar-benar mempertimbangkan perlunya GUI geoprocessing, karena dialog progres geoprocessing ArcGIS (setidaknya di 9.3.1, tidak tahu tentang 10) dapat dikustomisasi sedikit untuk menyesuaikan dengan kebutuhan Anda (menambahkan pesan, file log, bilah progres, dan semacamnya).

Dari pengalaman saya, Tkinter mudah dimengerti tetapi rumit ketika menginginkan desain yang sangat out-of-the-box. Juga, ada saat-saat itu tidak berinteraksi dengan sangat baik dengan ArcGIS (windows menghilang dan semacamnya). Ada perpustakaan GUI "disederhanakan" yang disebut EASYGUI yang didasarkan pada Tkinter, dan jauh lebih bagus dan lebih mudah dikendalikan. Saya bermain dengannya sedikit dan menemukan itu jauh lebih ramah daripada Tkinter.

Jonatr
sumber
4

Saya sudah mencoba apa yang ingin Anda lakukan, dan Jason benar - gunakan alat bawaan. Jika Anda mencoba dan menjalankan hampir semua widget python gui di dalam proses Arcmap, Anda akan mengalami berbagai macam masalah - saya sudah mencobanya. Terbaik untuk menjalankan proses GUI Anda di luar, dan berbicara kembali ke Arcmap melalui COM Arcobjects, menggunakan IGeoprocessor untuk menjalankan alat. Tetapi jika objek Anda hanya menjalankan alat dan skrip geoprocessing, Anda benar-benar tidak bisa melakukan lebih baik daripada membangun alat toolbox Anda sendiri dan menggunakan antarmuka alat standar.

artwork21
sumber
2

Anda bisa membangun GUI di .NET atau Mono dan kemudian jalankan skrip Python melalui objek Process .

Donny V.
sumber