ArcGIS Python komut dosyası aracı yürütülürken kullanıcı girişi isteniyor mu?


9

Komut dosyası aracı için tüm parametreler belirtildikten sonra kullanıcı girdisi için bilgi isteminde bulunmak istiyorum. Bu konuda birçok forum gönderisi ve stackexchange soruları gördüm ve hepsi bunun gereksiz olduğu sonucuna varıyor, ancak bence benim durumum bir istisna. Kullanıcıya, GPS koordinatlarının kaç kümesi olduğu gibi verileri onaylama fırsatı vermek istiyorum. Bunlar evet / hayır soruları olacaktır ("bu veriler açıkça yanlış mı?") Ve kod aracı parametre giriş formu bunun için işe yaramayacak gibi görünmüyor.

Tkinter'in olay işleyicisinin ArcGIS ile sorunlara neden olduğunu biliyorum ve diğer çerçevelerin de benzer sorunları var. Bulduğum bir çözüm, komut dosyanızın ayrı bir işlem olarak çalışan başka bir komut dosyasını çağırmasını ve ikinci işlemden GUI'yi görüntülemesini sağlamaktır, ancak bu biraz fazla hackish gibi görünüyor.


Görünüşe wxPython yapar işi, ancak piton dahil değil. Bu komut dosyalarını ArcGIS dışında herhangi bir ek gereksinim olmadan dağıtabilmem gerekiyor, bu yüzden benim için işe yaramaz.


Açıklığa kavuşturmak için en önemli kullanım, yazılım doğrulama denetimlerim verileri doğrulayamadığında kullanıcıya sormak olacaktır. Örneğin, doğrulamak istediğim kimliklerin bir listesi var, ancak biçim tutarlı değil. Yazılımda doğrulama yapamadığımda kullanıcıya evet / hayır iletişim kutusunu sorabilmeyi istiyorum (ör. Kimlik ortak modellerden biriyle eşleşmiyor). Benim bilgim olmadan yeni kimlik formatları oluşturulabilir.


Başka bir örnek: Diğer şeylerin yanı sıra, başlangıç ​​ve bitiş zamanlarının bir tablosunu içeren bir dosyam var. Tablonun her satırını ayrı ayrı doğrulamak istiyorum ve tüm bu verileri artı diğer kontrolleri uyarı penceresine tıkamak çirkin bir hız kazanıyor.


11
Ben buna karşı tavsiye ediyorum. Komut dosyası araçları, "Çalıştır" düğmesine bastıktan sonra kullanıcı etkileşimi olmadan çalışabilmektedir. Bununla birlikte, doğrulama kodunu kullanarak daha uygun uyarı / hata mesajları sağlayabilirsiniz .
blah238

2
Bir alt süreci hackish olarak çağırmayı söylüyorsunuz, ancak kullanıcı girdisi elde etmeye gelince, python komut dosyası araçlarına bağlı kalıyorsanız bu tek seçeneğiniz olabilir. Kesinlikle bir python komut dosyası aracı ile kullanıcı etkileşimi olması gerekiyorsa, bunu yapmanın yolu bir C # alt işlemi çağırarak olduğunu. Hatırlarsam, python kodu durur ve devam etmeden önce alt sürecin tamamlanmasını bekler. Bu, C # 'da yerleşik sınırsız miktarda kullanıcı etkileşimi ekleme fırsatı verir. Nesneleri C # 'a aktaramazsınız, bu nedenle verilerinizi dize biçiminde almanız gerekir.
bluefoot

Her ne kadar kayıt için blah238
bluefoot

4
Komut dosyası araçlarındaki doğrulama tam olarak budur.
user2856

Doğrulamanın sadece kodlanmış doğrulama için olduğunu ve kullanıcı girdisi alamadığını düşündüm. Doğrulayıcıdan evet / hayır istemlerini veya aynı etkiye sahip başka bir şeyi görüntüleyebilir miyim?
user14144

Yanıtlar:


2

Emin değilim, bu seçenek sizin için işe yarayıp yaramayabilir, ancak ac # uygulaması oluşturmayı düşünebilirsiniz.

  1. Bu uygulama ile tüm kullanıcı etkileşimlerini ve veri doğrulamasını yapın.
  2. Tüm verileri doğruladıktan sonra python komut dosyasını çalıştırın.
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.