5.3. الدرس: النماذج

عندما تضيف بيانات جديدة عبر الرقمنة، تظهر لك نافذة حوار تتيح لك ملء سمات ذلك المعلم. غير أن نافذة الحوار هذه ليست افتراضيًا جميلة المظهر. وقد يسبب هذا مشكلة في سهولة الاستخدام، خاصةً إن كانت لديك مجموعات بيانات كبيرة لإنشائها، أو إن أردت أن يساعدك آخرون في الرقمنة ووجدوا النماذج الافتراضية مربكة.

لحسن الحظ، يتيح لك QGIS إنشاء نوافذ حوار مخصصة لطبقة ما. يوضّح لك هذا الدرس كيفية ذلك.

هدف هذا الدرس: إنشاء نموذج لطبقة.

5.3.1. ★☆☆ تابع معنا: استخدام وظيفة تصميم النماذج في QGIS

  1. حدّد الطبقة roads في لوحة Layers

  2. ادخل في وضع التحرير كما في السابق

  3. افتح جدول البيانات الوصفية للطبقة roads

  4. انقر بالزر الأيمن على أي خلية في الجدول. ستظهر قائمة قصيرة تتضمن العنصر Open form.

  5. انقر عليه لترى النموذج الذي يولّده QGIS لهذه الطبقة

من الواضح أنه سيكون من الجيد أن تتمكن من فعل ذلك أثناء النظر إلى الخريطة، بدلًا من الحاجة إلى البحث عن شارع معيّن في Attribute Table طوال الوقت.

  1. حدّد الطبقة roads في لوحة Layers

  2. باستخدام الأداة identify Identify Features، انقر على أي شارع في الخريطة.

  3. تُفتح لوحة Identify Results وتعرض عرضًا شجريًا لقيم الحقول ومعلومات عامة أخرى عن المعلم الذي نقرت عليه.

  4. في أعلى اللوحة، فعّل مربع الاختيار Auto open form for single feature results في القائمة options Identify Settings.

  5. الآن، انقر مجددًا على أي شارع في الخريطة. سترى إلى جانب نافذة الحوار Identify Results السابقة النموذج الذي أصبح مألوفًا الآن:

    ../../../_images/roads_form.png
  6. في كل مرة تنقر فيها على معلم واحد باستخدام الأداة identify Identify Features، سيظهر نموذجه ما دام الخيار Auto open form مفعّلًا.

5.3.2. ★☆☆ جرّب بنفسك: استخدام النموذج لتحرير القيم

إن كنت في وضع التحرير، يمكنك استخدام هذا النموذج لتحرير سمات المعلم.

  1. فعّل وضع التحرير (إن لم يكن مفعّلًا بالفعل).

  2. باستخدام الأداة identify Identify Features، انقر على الشارع الرئيسي الذي يمر عبر Swellendam:

    ../../../_images/main_street_selected.png
  3. حرّر قيمة highway الخاصة به لتصبح secondary

  4. اخرج من وضع التحرير واحفظ تعديلاتك

  5. افتح Attribute Table ولاحظ أن القيمة قد حُدّثت في جدول البيانات الوصفية، وبالتالي في البيانات المصدرية

5.3.3. ★★☆ تابع معنا: ضبط أنواع حقول النموذج

من الجيد تحرير الأشياء باستخدام نموذج، لكنك لا تزال مضطرًا إلى إدخال كل شيء يدويًا. لحسن الحظ، تحتوي النماذج على أنواع مختلفة مما يُسمّى عناصر الواجهة (widgets) التي تتيح لك تحرير البيانات بطرق متنوعة.

  1. افتح Properties... للطبقة roads

  2. انتقل إلى التبويب Fields. سترى ما يلي:

    ../../../_images/fields_panel.png
  3. انتقل إلى التبويب Attributes Form. سترى ما يلي:

    ../../../_images/attributes_form.png
  4. انقر على الصف oneway واختر Checkbox بوصفه Widget Type من قائمة الخيارات:

    ../../../_images/checkbox_selected.png
  5. انقر على OK

  6. ادخل في وضع التحرير (إن لم تكن الطبقة roads في وضع التحرير بالفعل)

  7. انقر على الأداة identify Identify Features

  8. انقر على الطريق الرئيسي نفسه الذي اخترته سابقًا

سترى الآن أن للسمة oneway مربع اختيار بجوارها يدل على True (محدد) أو False (غير محدد).

5.3.4. ★★★ جرّب بنفسك:

اضبط عنصر واجهة نموذج أكثر ملاءمة للحقل highway.

5.3.5. ★★★ جرّب بنفسك: إنشاء بيانات اختبارية

يمكنك أيضًا تصميم نموذجك المخصص كليًا من الصفر.

  1. أنشئ طبقة نقطية بسيطة باسم test-data تحتوي على سمتين:

    • name (نص)

    • age (عدد صحيح)

    ../../../_images/new_point_layer.png
  2. التقط بضع نقاط على طبقتك الجديدة باستخدام أدوات الرقمنة كي تتوفر لديك بعض البيانات للتجربة. ينبغي أن يظهر لك نموذج التقاط السمات الافتراضي الذي يولّده QGIS في كل مرة تلتقط فيها نقطة جديدة.

    ملاحظة

    قد تحتاج إلى تعطيل الالتقاط (Snapping) إن كان لا يزال مفعّلًا من المهام السابقة.

    ../../../_images/new_point_entry.png

5.3.6. ★★★ تابع معنا: إنشاء نموذج جديد

نريد الآن إنشاء نموذجنا المخصص لمرحلة التقاط البيانات الوصفية. ولفعل ذلك، يجب أن يكون QT Designer مثبّتًا لديك (وهو مطلوب فقط للشخص الذي ينشئ النماذج).

  1. شغّل QT Designer.

  2. في نافذة الحوار التي تظهر، أنشئ نافذة حوار جديدة:

    ../../../_images/qt_new_dialog.png
  3. ابحث عن Widget Box على يسار شاشتك (افتراضيًا). وهو يحتوي على عنصر اسمه Line Edit.

  4. انقر على هذا العنصر واسحبه إلى نموذجك. سيُنشئ هذا Line Edit جديدًا في النموذج.

  5. مع تحديد عنصر تحرير السطر الجديد، سترى خصائصه على جانب شاشتك (على اليمين افتراضيًا):

    ../../../_images/qt_line_edit.png
  6. اضبط اسمه على name.

  7. باستخدام الأسلوب نفسه، أنشئ Spin Box جديدًا واضبط اسمه على age.

  8. أضف Label بالنص Add a New Person بخط عريض (ابحث في خصائص الكائن لمعرفة كيفية ضبط ذلك). وبدلًا من ذلك، قد ترغب في ضبط عنوان نافذة الحوار نفسها (بدلًا من إضافة تسمية).

  9. أضف Label لكل من Line Edit و Spin Box.

  10. رتّب العناصر كما تشاء.

  11. انقر في أي مكان داخل نافذة الحوار.

  12. اعثر على الزر Lay Out in a Form Layout (في شريط أدوات على امتداد الحافة العلوية للشاشة، افتراضيًا). سيرتّب هذا نافذة الحوار تلقائيًا.

  13. اضبط الحجم الأقصى لنافذة الحوار (في خصائصها) على 200 (العرض) في 150 (الارتفاع).

  14. ينبغي أن يبدو نموذجك الآن مشابهًا لهذا:

    ../../../_images/qt_example_form.png
  15. احفظ نموذجك الجديد باسم exercise_data/forms/add_people.ui

  16. عند انتهاء الحفظ، يمكنك إغلاق Qt Designer

5.3.7. ★★★ تابع معنا: ربط النموذج بطبقتك

  1. ارجع إلى QGIS

  2. انقر نقرًا مزدوجًا على الطبقة test-data في مفتاح الخريطة للوصول إلى خصائصها.

  3. انقر على التبويب Attributes Form في نافذة الحوار Layer Properties

  4. في القائمة المنسدلة Attribute editor layout، اختر Provide ui-file.

  5. انقر على زر النقاط الثلاث واختر الملف add_people.ui الذي أنشأته للتو:

    ../../../_images/provide_ui_file.png
  6. انقر على OK في نافذة الحوار Layer Properties

  7. ادخل في وضع التحرير والتقط نقطة جديدة

  8. عند فعل ذلك، ستظهر لك نافذة الحوار المخصصة الخاصة بك (بدلًا من النافذة العامة التي ينشئها QGIS عادةً).

  9. إذا نقرت على إحدى نقاطك باستخدام الأداة identify Identify Features، يمكنك الآن إظهار النموذج بالنقر بالزر الأيمن في نافذة نتائج التعريف واختيار View Feature Form من قائمة السياق.

  10. إن كنت في وضع التحرير لهذه الطبقة، فستعرض قائمة السياق تلك Edit Feature Form بدلًا من ذلك، ويمكنك حينها تعديل السمات في النموذج الجديد حتى بعد الالتقاط الأوّلي.

5.3.8. الخلاصة

باستخدام النماذج، يمكنك تسهيل الأمور على نفسك عند تحرير البيانات أو إنشائها. ومن خلال تحرير أنواع عناصر الواجهة أو إنشاء نموذج جديد كليًا من الصفر، يمكنك التحكم في تجربة من يرقمن بيانات جديدة لتلك الطبقة، مما يقلّل سوء الفهم والأخطاء غير الضرورية.

5.3.9. قراءات إضافية

إن أكملت القسم المتقدم أعلاه ولديك معرفة بلغة Python، فقد ترغب في الاطلاع على هذه التدوينة حول إنشاء نماذج معالم مخصصة بمنطق Python، مما يتيح وظائف متقدمة منها التحقق من صحة البيانات والإكمال التلقائي وغيرها.

5.3.10. ما التالي؟

يُعدّ فتح نموذج عند تعريف معلم ما أحد الإجراءات القياسية التي يمكن لـ QGIS تنفيذها. غير أنه يمكنك أيضًا توجيهه لتنفيذ إجراءات مخصصة تعرّفها أنت. وهذا هو موضوع الدرس التالي.