PyQT / Tkinter / wxPython kullanarak ArcGIS coğrafi işleme için Python'da GUI mi geliştiriyorsunuz?


13

ArcGIS geoprocessing için Python'da bir GUI geliştirmek istiyorum.

ArcGIS'te GUI programlama için PyQT kullanabilir miyim?

Ayrıca Tkinter ve wxPython kullanmayı düşündüm.

Yanıtlar:


21

Coğrafi işlemler için kendi GUI'nizi kullanma ihtiyacını sorgularım.

Coğrafi işleme aracı fikri, standart arayüzlerden (mesajlar için etkinleştirildiyse GP ilerleme iletişim kutusu ve bir ilerleme iletişim kutusu, parametreleri ayarlamak ve aracı çalıştırmak için GP araç iletişim kutusu) geçmesi ve her şeyi atlatmak için davayı kullanın.

Sonuçta: hepsi sizin için en iyi olan şeyin meselesidir.

  1. Tkinter yerleşiktir ancak sofistike bir şey çalıştırmak için çirkin ve zordur, ancak içine bir kullanıcı arayüzü yazarsanız, hemen hemen her yerde çalışır .
  2. Wx ve PyQt hem yakın wxPython örnekler öğrenmek için mükemmeldir ve QT geliştirici araçları biraz daha güzel olsa, işlevsel olarak eşdeğer. Her ikisinin de API'larına bakın ve hangisinin kullanmanız için daha güzel göründüğünü belirleyin.

PyQT'nin ArcMap ve kendi olay döngülerine sahip diğer programlarda Wx veya Tk'den biraz daha istikrarlı bir şekilde çalıştığını söyleyemedim. Wx ve Tk programları, bir işlemde çalışan ve diğer GUI programlarındaki olay döngüleriyle hatalı davranan tek kullanıcı arabirimi olmasını bekleme eğilimindedir.


8

Jason'la beraberim - ArcGIS coğrafi işlem ilerleme iletişim kutusu (en azından 9.3.1'de, 10'u bilmiyorum) gereksinimlerinize uyum sağlamak için biraz özelleştirilebildiğinden, gerçekten bir coğrafi işlem GUI'sinin gerekliliğini düşünmelisiniz. mesajlar, günlük dosyaları, ilerleme çubukları vb.).

Deneyimlerime göre, Tkinter anlaşılması kolay ama çok yeni tasarımlar isterken karmaşık. Ayrıca, ArcGIS (pencerelerin kaybolması ve benzeri) ile çok iyi etkileşime girmediği zamanlar vardır. EASYGUI adı verilen ve Tkinter'e dayanan ve kontrolü çok daha kolay ve daha kolay olan bir "basitleştirilmiş" GUI kütüphanesi var. Onunla biraz oynadım ve Tkinter'den çok daha dostça buldum.


4

Ne yapmak istediğinizi denedim ve Jason'ın hakkı - yerleşik araçları kullanın. Arcmap işlemi içinde herhangi bir python gui widget'ı kümesini çalıştırmaya çalışırsanız, çeşitli türlerin sorunuyla karşılaşırsınız - denedim. GUI'nizi işlem dışında çalıştırmak ve araçları çalıştırmak için IGeoprocessor kullanarak COM Arcobjects aracılığıyla Arcmap ile tekrar konuşmak en iyisidir. Ancak nesneniz yalnızca coğrafi işleme araçlarını ve komut dosyalarını çalıştırıyorsa, kendi araç kutusu araçlarınızı oluşturmaktan ve standart araç arabirimlerini kullanmaktan daha iyisini yapamazsınız.


2

GUI'yi .NET veya Mono'da oluşturabilir ve ardından Python komut dosyasını Process nesnesi üzerinden çalıştırabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.