5.3. الدرس: النماذج¶
عندما تضيف بيانات جديدة عبر الرقمنة، تظهر لك نافذة حوار تتيح لك ملء سمات ذلك المعلم. غير أن نافذة الحوار هذه ليست افتراضيًا جميلة المظهر. وقد يسبب هذا مشكلة في سهولة الاستخدام، خاصةً إن كانت لديك مجموعات بيانات كبيرة لإنشائها، أو إن أردت أن يساعدك آخرون في الرقمنة ووجدوا النماذج الافتراضية مربكة.
لحسن الحظ، يتيح لك QGIS إنشاء نوافذ حوار مخصصة لطبقة ما. يوضّح لك هذا الدرس كيفية ذلك.
هدف هذا الدرس: إنشاء نموذج لطبقة.
5.3.1. ★☆☆ تابع معنا: استخدام وظيفة تصميم النماذج في QGIS¶
حدّد الطبقة
roadsفي لوحة Layersادخل في وضع التحرير كما في السابق
افتح جدول البيانات الوصفية للطبقة
roadsانقر بالزر الأيمن على أي خلية في الجدول. ستظهر قائمة قصيرة تتضمن العنصر Open form.
انقر عليه لترى النموذج الذي يولّده QGIS لهذه الطبقة
من الواضح أنه سيكون من الجيد أن تتمكن من فعل ذلك أثناء النظر إلى الخريطة، بدلًا من الحاجة إلى البحث عن شارع معيّن في Attribute Table طوال الوقت.
حدّد الطبقة
roadsفي لوحة Layersباستخدام الأداة
Identify Features، انقر على أي شارع في الخريطة.تُفتح لوحة Identify Results وتعرض عرضًا شجريًا لقيم الحقول ومعلومات عامة أخرى عن المعلم الذي نقرت عليه.
في أعلى اللوحة، فعّل مربع الاختيار Auto open form for single feature results في القائمة
Identify Settings.الآن، انقر مجددًا على أي شارع في الخريطة. سترى إلى جانب نافذة الحوار Identify Results السابقة النموذج الذي أصبح مألوفًا الآن:
في كل مرة تنقر فيها على معلم واحد باستخدام الأداة
Identify Features، سيظهر نموذجه ما دام الخيار Auto open form مفعّلًا.
5.3.2. ★☆☆ جرّب بنفسك: استخدام النموذج لتحرير القيم¶
إن كنت في وضع التحرير، يمكنك استخدام هذا النموذج لتحرير سمات المعلم.
فعّل وضع التحرير (إن لم يكن مفعّلًا بالفعل).
باستخدام الأداة
Identify Features، انقر على الشارع الرئيسي الذي يمر عبر Swellendam:
حرّر قيمة highway الخاصة به لتصبح
secondaryاخرج من وضع التحرير واحفظ تعديلاتك
افتح Attribute Table ولاحظ أن القيمة قد حُدّثت في جدول البيانات الوصفية، وبالتالي في البيانات المصدرية
5.3.3. ★★☆ تابع معنا: ضبط أنواع حقول النموذج¶
من الجيد تحرير الأشياء باستخدام نموذج، لكنك لا تزال مضطرًا إلى إدخال كل شيء يدويًا. لحسن الحظ، تحتوي النماذج على أنواع مختلفة مما يُسمّى عناصر الواجهة (widgets) التي تتيح لك تحرير البيانات بطرق متنوعة.
افتح Properties... للطبقة
roadsانتقل إلى التبويب Fields. سترى ما يلي:
انتقل إلى التبويب Attributes Form. سترى ما يلي:
انقر على الصف
onewayواختر Checkbox بوصفه Widget Type من قائمة الخيارات:
انقر على OK
ادخل في وضع التحرير (إن لم تكن الطبقة
roadsفي وضع التحرير بالفعل)انقر على الطريق الرئيسي نفسه الذي اخترته سابقًا
سترى الآن أن للسمة oneway مربع اختيار بجوارها يدل على True (محدد) أو False (غير محدد).
5.3.4. ★★★ جرّب بنفسك:¶
اضبط عنصر واجهة نموذج أكثر ملاءمة للحقل highway.
الإجابة
بالنسبة إلى TYPE، من الواضح أن عدد الأنواع التي يمكن أن يكون عليها الطريق محدود، وإذا تحقّقت من جدول البيانات الوصفية لهذه الطبقة، سترى أنها معرّفة مسبقًا.
5.3.5. ★★★ جرّب بنفسك: إنشاء بيانات اختبارية¶
يمكنك أيضًا تصميم نموذجك المخصص كليًا من الصفر.
أنشئ طبقة نقطية بسيطة باسم
test-dataتحتوي على سمتين:name (نص)
age (عدد صحيح)
التقط بضع نقاط على طبقتك الجديدة باستخدام أدوات الرقمنة كي تتوفر لديك بعض البيانات للتجربة. ينبغي أن يظهر لك نموذج التقاط السمات الافتراضي الذي يولّده QGIS في كل مرة تلتقط فيها نقطة جديدة.
ملاحظة
قد تحتاج إلى تعطيل الالتقاط (Snapping) إن كان لا يزال مفعّلًا من المهام السابقة.
5.3.6. ★★★ تابع معنا: إنشاء نموذج جديد¶
نريد الآن إنشاء نموذجنا المخصص لمرحلة التقاط البيانات الوصفية. ولفعل ذلك، يجب أن يكون QT Designer مثبّتًا لديك (وهو مطلوب فقط للشخص الذي ينشئ النماذج).
شغّل QT Designer.
في نافذة الحوار التي تظهر، أنشئ نافذة حوار جديدة:
ابحث عن Widget Box على يسار شاشتك (افتراضيًا). وهو يحتوي على عنصر اسمه Line Edit.
انقر على هذا العنصر واسحبه إلى نموذجك. سيُنشئ هذا Line Edit جديدًا في النموذج.
مع تحديد عنصر تحرير السطر الجديد، سترى خصائصه على جانب شاشتك (على اليمين افتراضيًا):
اضبط اسمه على
name.باستخدام الأسلوب نفسه، أنشئ Spin Box جديدًا واضبط اسمه على
age.أضف Label بالنص
Add a New Personبخط عريض (ابحث في خصائص الكائن لمعرفة كيفية ضبط ذلك). وبدلًا من ذلك، قد ترغب في ضبط عنوان نافذة الحوار نفسها (بدلًا من إضافة تسمية).أضف Label لكل من Line Edit و Spin Box.
رتّب العناصر كما تشاء.
انقر في أي مكان داخل نافذة الحوار.
اعثر على الزر Lay Out in a Form Layout (في شريط أدوات على امتداد الحافة العلوية للشاشة، افتراضيًا). سيرتّب هذا نافذة الحوار تلقائيًا.
اضبط الحجم الأقصى لنافذة الحوار (في خصائصها) على
200(العرض) في150(الارتفاع).ينبغي أن يبدو نموذجك الآن مشابهًا لهذا:
احفظ نموذجك الجديد باسم
exercise_data/forms/add_people.uiعند انتهاء الحفظ، يمكنك إغلاق Qt Designer
5.3.7. ★★★ تابع معنا: ربط النموذج بطبقتك¶
ارجع إلى QGIS
انقر نقرًا مزدوجًا على الطبقة
test-dataفي مفتاح الخريطة للوصول إلى خصائصها.انقر على التبويب Attributes Form في نافذة الحوار Layer Properties
في القائمة المنسدلة Attribute editor layout، اختر Provide ui-file.
انقر على زر النقاط الثلاث واختر الملف
add_people.uiالذي أنشأته للتو:
انقر على OK في نافذة الحوار Layer Properties
ادخل في وضع التحرير والتقط نقطة جديدة
عند فعل ذلك، ستظهر لك نافذة الحوار المخصصة الخاصة بك (بدلًا من النافذة العامة التي ينشئها QGIS عادةً).
إذا نقرت على إحدى نقاطك باستخدام الأداة
Identify Features، يمكنك الآن إظهار النموذج بالنقر بالزر الأيمن في نافذة نتائج التعريف واختيار من قائمة السياق.إن كنت في وضع التحرير لهذه الطبقة، فستعرض قائمة السياق تلك بدلًا من ذلك، ويمكنك حينها تعديل السمات في النموذج الجديد حتى بعد الالتقاط الأوّلي.
5.3.8. الخلاصة¶
باستخدام النماذج، يمكنك تسهيل الأمور على نفسك عند تحرير البيانات أو إنشائها. ومن خلال تحرير أنواع عناصر الواجهة أو إنشاء نموذج جديد كليًا من الصفر، يمكنك التحكم في تجربة من يرقمن بيانات جديدة لتلك الطبقة، مما يقلّل سوء الفهم والأخطاء غير الضرورية.
5.3.9. قراءات إضافية¶
إن أكملت القسم المتقدم أعلاه ولديك معرفة بلغة Python، فقد ترغب في الاطلاع على هذه التدوينة حول إنشاء نماذج معالم مخصصة بمنطق Python، مما يتيح وظائف متقدمة منها التحقق من صحة البيانات والإكمال التلقائي وغيرها.
5.3.10. ما التالي؟¶
يُعدّ فتح نموذج عند تعريف معلم ما أحد الإجراءات القياسية التي يمكن لـ QGIS تنفيذها. غير أنه يمكنك أيضًا توجيهه لتنفيذ إجراءات مخصصة تعرّفها أنت. وهذا هو موضوع الدرس التالي.