แจ้งให้ผู้ใช้ป้อนข้อมูลในระหว่างการใช้งานเครื่องมือสคริปต์ ArcGIS Python หรือไม่


9

ฉันต้องการให้ผู้ใช้ป้อนข้อมูลหลังจากระบุพารามิเตอร์ทั้งหมดสำหรับเครื่องมือสคริปต์แล้ว ฉันเคยเห็นโพสต์ฟอรัมและคำถามแลกเปลี่ยนมากมายเกี่ยวกับเรื่องนี้และพวกเขาสรุปว่ามันไม่จำเป็น แต่ฉันคิดว่ากรณีของฉันเป็นข้อยกเว้น ฉันต้องการให้ผู้ใช้มีโอกาสยืนยันข้อมูลเช่นมีพิกัด GPS กี่ชุด พวกเขาจะเป็นคำถามที่ตอบว่าใช่ / ไม่ใช่ ("ข้อมูลนี้ไม่ถูกต้องหรือไม่") และรูปแบบการป้อนพารามิเตอร์เครื่องมือสคริปต์ไม่ดูเหมือนว่าจะทำงานได้ดีสำหรับสิ่งนี้

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


เห็นได้ชัดว่า wxPython ไม่ทำงาน แต่ก็ไม่ได้มาพร้อมกับงูหลาม ฉันต้องสามารถแจกจ่ายสคริปต์เหล่านี้ได้โดยไม่ต้องมีข้อกำหนดเพิ่มเติมนอกเหนือจาก ArcGIS ดังนั้นมันจึงไม่ได้ผลสำหรับฉัน


เพื่อชี้แจงการใช้ที่สำคัญที่สุดคือการแจ้งให้ผู้ใช้เมื่อการตรวจสอบการตรวจสอบซอฟต์แวร์ของฉันไม่สามารถตรวจสอบข้อมูล ตัวอย่างเช่นฉันมีรายการรหัสที่ฉันต้องการตรวจสอบ แต่รูปแบบไม่สอดคล้องกัน ฉันต้องการให้ผู้ใช้โต้ตอบด้วยใช่ / ไม่ใช่กล่องโต้ตอบหากฉันไม่สามารถตรวจสอบในซอฟต์แวร์ (เช่น ID ไม่ตรงกับหนึ่งในรูปแบบทั่วไป) เป็นไปได้ว่ารูปแบบ ID ใหม่จะถูกสร้างขึ้นโดยที่ฉันไม่รู้


อีกตัวอย่างหนึ่ง: ฉันมีไฟล์ที่บรรจุตารางเวลาเริ่มต้นและหยุด ฉันต้องการตรวจสอบความถูกต้องของแต่ละแถวของตารางและยัดเยียดข้อมูลทั้งหมดรวมทั้งการตรวจสอบอื่น ๆ ลงในหน้าต่างคำเตือนที่น่าเกลียดอย่างรวดเร็ว


11
ฉันอยากจะแนะนำกับมัน เครื่องมือสคริปต์นั้นสามารถเรียกใช้โดยไม่ต้องมีการโต้ตอบกับผู้ใช้เมื่อคุณกด "Run" คุณอาจจะสามารถที่จะให้ข้อความเตือน / ข้อผิดพลาดที่เกี่ยวข้องมากขึ้นโดยใช้รหัสการตรวจสอบอย่างไร
blah238

2
คุณพูดถึงการเรียกกระบวนการย่อยว่าเป็นแฮ็ช แต่เท่าที่ได้รับข้อมูลจากผู้ใช้ฉันคิดว่านี่อาจเป็นตัวเลือกเดียวของคุณถ้าคุณติดกับเครื่องมือสคริปต์ไพ ธ อน วิธีที่ฉันจะทำถ้าฉันต้องมีปฏิสัมพันธ์กับผู้ใช้กับเครื่องมือสคริปต์หลามอย่างแน่นอนคือการเรียกกระบวนการย่อย C # ถ้าฉันจำรหัสหลามจะหยุดและรอให้กระบวนการย่อยเสร็จสมบูรณ์ก่อนดำเนินการต่อ สิ่งนี้ทำให้คุณมีโอกาสที่จะรวมการโต้ตอบกับผู้ใช้ใน C # จำนวนไม่ จำกัด คุณไม่สามารถส่งวัตถุไปยัง C # ได้ดังนั้นคุณจะต้องรับข้อมูลของคุณในรูปแบบสตริง
bluefoot

แม้ว่าสำหรับบันทึกฉันเห็นด้วยกับ blah238
bluefoot

4
นี่คือการตรวจสอบความถูกต้องในเครื่องมือสคริปต์
2856

ฉันคิดว่าการตรวจสอบความถูกต้องเป็นเพียงการตรวจสอบสคริปต์และไม่สามารถรับข้อมูลผู้ใช้ได้ ฉันสามารถแสดงพรอมต์ใช่ / ไม่ใช่จากตัวตรวจสอบความถูกต้องหรือมีสิ่งอื่นที่มีผลเหมือนกันได้หรือไม่
user14144

คำตอบ:


2

ฉันไม่แน่ใจว่าตัวเลือกนี้สามารถทำงานให้คุณได้หรือไม่ แต่อาจเป็นไปได้ที่คุณจะนึกถึงการสร้างแอปพลิเคชัน ac #

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