การพัฒนา GUI ใน Python สำหรับการประมวลผลทางภูมิศาสตร์ของ ArcGIS โดยใช้ PyQT / Tkinter / wxPython


13

ฉันต้องการพัฒนา GUI ใน Python สำหรับการประมวลผลทางภูมิศาสตร์ของ ArcGIS

ฉันสามารถใช้ PyQT สำหรับการเขียนโปรแกรม GUI ใน ArcGIS ได้หรือไม่

ฉันพิจารณาใช้ Tkinter และ wxPython ด้วย

คำตอบ:


21

ฉันจะถามถึงความจำเป็นในการใช้ GUI ของคุณเองสำหรับการประมวลผลทางภูมิศาสตร์

แนวคิดของเครื่องมือการประมวลผลทางภูมิศาสตร์คือมันต้องผ่านอินเทอร์เฟซมาตรฐาน (กล่องโต้ตอบความคืบหน้าของ GP หากเปิดใช้งานสำหรับข้อความและกล่องโต้ตอบความคืบหน้า, กล่องโต้ตอบเครื่องมือ GP สำหรับการตั้งค่าพารามิเตอร์และเรียกใช้เครื่องมือ ฯลฯ ) และฉันต้องการได้ยิน ใช้กรณีเพื่อพยายามหลีกเลี่ยงสิ่งนั้นทั้งหมด

ทั้งหมดในทุกเรื่องมันเป็นเรื่องของสิ่งที่ดีที่สุดสำหรับคุณ

  1. Tkinter ในตัว แต่ชนิดของน่าเกลียดและยากที่จะได้รับสิ่งที่มีความซับซ้อนขึ้นและทำงาน แต่ถ้าคุณทำเขียน UI ในนั้นก็จะทำงานสวยมากทุกที่
  2. Wx และ PyQT นั้นใกล้เคียงกับการใช้งานจริงแม้ว่าตัวอย่าง wxPython นั้นยอดเยี่ยมในการเรียนรู้จากและเครื่องมือสำหรับนักพัฒนาของ QT นั้นยอดเยี่ยมกว่าเล็กน้อย ดู API ของทั้งคู่และพิจารณาว่าอันไหนที่ดูดีกว่าให้คุณใช้

ฉันล้มเหลวที่จะพูดถึงว่า PyQT ดูเหมือนจะทำงานในแบบที่เสถียรกว่าเล็กน้อยใน ArcMap และโปรแกรมอื่น ๆ ที่มีลูปเหตุการณ์ของตนเองมากกว่า Wx หรือ Tk โปรแกรม Wx และ Tk มีแนวโน้มที่จะคาดหวังว่าจะเป็นเธรด UI เดียวที่ทำงานในกระบวนการและทำงานผิดปกติกับลูปเหตุการณ์ในโปรแกรม GUI อื่น ๆ


8

ฉันอยู่กับJason - คุณควรพิจารณาถึงความจำเป็นของ GUI สำหรับกระบวนการทางภูมิศาสตร์เนื่องจากกล่องโต้ตอบความคืบหน้าการดำเนินการทางภูมิศาสตร์ของ ArcGIS (อย่างน้อยใน 9.3.1, ไม่ทราบเกี่ยวกับ 10) สามารถปรับแต่งเล็กน้อยเพื่อปรับให้เข้ากับความต้องการของคุณ ข้อความ, logfiles, แถบความก้าวหน้าและอื่น ๆ )

จากประสบการณ์ของฉัน Tkinter นั้นเข้าใจง่าย แต่ซับซ้อนเมื่อต้องการการออกแบบนอกกรอบมาก นอกจากนี้ยังมีบางครั้งที่มันไม่ทำงานได้ดีกับ ArcGIS (หน้าต่างหายไปและเช่นนั้น) มีไลบรารี GUI "ที่ทำให้เข้าใจง่าย" ซึ่งเรียกว่า EASYGUI ซึ่งใช้ Tkinter และมีการควบคุมที่ดีกว่าและง่ายกว่ามาก ฉันเล่นกับมันเล็กน้อยและพบว่ามันเป็นมิตรกว่า Tkinter มาก


4

ฉันลองทำในสิ่งที่คุณต้องการแล้วเจสันก็ใช้เครื่องมือในตัว หากคุณลองและรัน python gui widget ชุดใดก็ได้ในกระบวนการ Arcmap คุณจะพบปัญหาหลาย ๆ อย่าง - ฉันได้ลองแล้ว ที่ดีที่สุดในการรัน GUI นอกกระบวนการและพูดคุยกลับไปที่ Arcmap ผ่าน COM Arcobjects โดยใช้ IGeoprocessor เพื่อเรียกใช้เครื่องมือ แต่ถ้าวัตถุของคุณกำลังเรียกใช้เครื่องมือและสคริปต์การประมวลผลเชิงภูมิศาสตร์คุณไม่สามารถทำได้ดีกว่าการสร้างเครื่องมือกล่องเครื่องมือของคุณเองและใช้ส่วนต่อประสานเครื่องมือมาตรฐาน


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.