تعد إضافة واجهة مستخدم رسومية (GUI) إلى مشروع Raspberry Pi طريقة رائعة لتضمين شاشة لإدخال البيانات ، أو أزرار على الشاشة للتحكم أو حتى طريقة أكثر ذكاءً لإظهار قراءات من مكونات مثل أجهزة الاستشعار.
01 من 10
جعل واجهة لمشروعك
هناك عدد من طرق GUI المختلفة المتاحة لـ Raspberry Pi ، ومع ذلك ، فإن معظمها يحتوي على منحنى تعلم حاد.
قد تكون واجهة Tkinter Python هي الخيار 'go to' الافتراضي لمعظم ، ومع ذلك ، يمكن للمبتدئين أن يواجهوا صعوبة في تعقيدها. وبالمثل ، تقدم مكتبة PyGame خيارات لعمل واجهات مثيرة للإعجاب ولكنها قد تكون فائضة للمتطلبات.
إذا كنت تبحث عن واجهة بسيطة وسريعة لمشروعك ، فقد يكون EasyGUI هو الحل. ما تفتقده في الجمال الرسومي أكثر من يعوض في بساطته وسهولة الاستخدام.
ستقدم لك هذه المقالة مقدمة إلى المكتبة ، بما في ذلك بعض أكثر الخيارات المفيدة التي وجدناها.
02 من 10
تحميل واستيراد EasyGUI
في هذا المقال ، نحن نستخدم نظام التشغيل Raspbian القياسي المتوفر هنا.
سيكون تثبيت المكتبة عملية مألوفة بالنسبة لمعظمها ، باستخدام طريقة "apt-get install". ستحتاج إلى اتصال بالإنترنت على جهاز Raspberry Pi باستخدام إما اتصال Ethernet أو اتصال WiFi سلكي.
افتح نافذة طرفية (أيقونة شاشة سوداء على شريط المهام الخاص بشركة Pi) وأدخل الأمر التالي:
apt-get install python-easyguiسيقوم هذا الأمر بتنزيل المكتبة وتثبيتها نيابةً عنك ، وهذا هو الإعداد الذي تحتاج إلى القيام به.
03 من 10
استيراد EasyGUI
تحتاج EasyGUI إلى استيرادها إلى برنامج نصي قبل أن تتمكن من استخدام وظائفها. يتم تحقيق ذلك عن طريق إدخال سطر واحد في الجزء العلوي من النص الخاص بك وهو نفس بغض النظر عن خيارات واجهة EasyGUI التي تستخدمها.
قم بإنشاء برنامج نصي جديد عن طريق إدخال الأمر التالي في نافذة طرفك:
sudo نانو easygui.pyستظهر شاشة فارغة - هذا هو ملفك الفارغ (نانو هو ببساطة اسم محرر النص). لاستيراد برنامج EasyGUI إلى البرنامج النصي ، أدخل السطر التالي:
من استيراد easygui *نستخدم هذا الإصدار المحدد من الاستيراد لجعل التشفير أسهل في وقت لاحق. على سبيل المثال ، عند استيراد هذا eway ، بدلاً من الحاجة إلى كتابة "easygui.msgbox" يمكننا ببساطة استخدام "msgbox".
الآن دعونا نغطي بعض خيارات الواجهة الرئيسية في EasyGUI.
04 من 10
مربع الرسالة الأساسية
يعطي مربع الرسالة هذا ، بأبسط صوره ، للمستخدم سطرًا من النص وزرًا منفردًا للنقر عليه. في ما يلي مثال لمحاولة - أدخل السطر التالي بعد سطر الاستيراد ، وحفظ باستخدام Ctrl + X:
msgbox ("Cool box huh؟"، "I am a Message Box")لتشغيل البرنامج النصي ، استخدم الأمر التالي:
sudo python easygui.pyيجب أن ترى مربع رسالة يظهر ، مع "أنا صندوق الرسائل" مكتوب في الشريط العلوي ، و "مربع بارد هاه؟" فوق الزر.
05 من 10
متابعة أو إلغاء مربع
ستحتاج في بعض الأحيان إلى المستخدم لتأكيد إجراء ما أو اختيار ما إذا كنت تريد المتابعة أم لا. يوفر مربع "ccbox" نفس سطر النص مثل مربع الرسالة الأساسي أعلاه ، ولكنه يوفر زرين - "متابعة" و "إلغاء".
في ما يلي مثال للاستخدام قيد الاستخدام ، مع طباعة الأزرار متابعة وإلغاء إلى المحطة الطرفية. يمكنك تغيير الإجراء بعد الضغط على كل زر لفعل ما تشاء:
من استيراد easygui * import time msg = "هل ترغب في المتابعة؟" title = "هل تريد المتابعة؟" إذا كان ccbox (msg، title): # show a Continue / Cancel print print "User selected continue" # Add other other here: # user choose Cancel print "User canceled" # Add other orders here06 من 10
مربع زر مخصص
إذا لم توفر لك خيارات المربع المدمج ما تحتاج إليه ، يمكنك إنشاء مربع زر مخصص باستخدام ميزة "buttonbox".
هذا أمر رائع إذا كان لديك المزيد من الخيارات التي تحتاج إلى تغطية ، أو ربما تتحكم في عدد من مؤشرات LED أو المكونات الأخرى مع واجهة المستخدم.
إليك مثال على اختيار الصلصة لأمر:
من استيراد easygui * استيراد وقت msg = "أي صلصة تحب؟" options = ["Mild"، "Hot"، "Extra Hot"] رد = buttonbox (msg، options = options) في حالة الرد == "Mild": print print إذا الرد == "Hot": print reply if reply == "Extra Hot": print reply07 من 10
صندوق الاختيار
الأزرار رائعة ، ولكن بالنسبة لقوائم طويلة من الخيارات ، فإن "صندوق الاختيار" يجعل الأمر منطقيًا. جرّب تركيب 10 أزرار في صندوق وستتوافق قريبًا!
تسرد هذه المربعات الخيارات المتاحة في صفوف واحدة تلو الأخرى ، مع مربع "موافق" و "إلغاء" إلى الجانب. إنهم أذكياء إلى حد معقول ، حيث يقومون بفرز الخيارات أبجديًا ، كما يسمحون لك بالضغط على مفتاح للانتقال إلى الخيار الأول من ذلك الحرف.
في ما يلي مثال على عرض عشرة أسماء ، والتي يمكنك رؤيتها في لقطة الشاشة.
من استيراد easygui * استيراد الوقت msg = "من الذي ترك الكلاب خارجا؟" خيارات title = "Missing Dogs" = ["Alex" ، "Cat" ، "Michael" ، "James" ، "Albert" ، "Phil" ، "Yasmin" ، "Frank" ، "Tim" ، "Hannah"] = مربع الاختيار (رسالة ، عنوان ، اختيارات)08 من 10
صندوق إدخال البيانات
تعتبر النماذج طريقة رائعة لالتقاط البيانات لمشروعك ، و EasyGUI لديه خيار "multenterbox" والذي يسمح لك بإظهار الحقول المصنفة لالتقاط المعلومات باستخدام.
مرة أخرى ، هناك حالة من حقول وضع العلامات والتقاط المدخلات ببساطة. لقد قدمنا مثالاً أدناه للحصول على استمارة اشتراك عضوية بسيطة في صالة الألعاب الرياضية.
هناك خيارات لإضافة التحقق من الصحة والميزات المتقدمة الأخرى ، والتي يغطي موقع EasyGUI بالتفصيل.
from easygui import * import time msg = "Member Information" title = "Gym Membership Form" fieldNames = ["First Name"، "Name"، "Age"، "Weight"] fieldValues = [] # the starting values fieldValues = multenterbox (msg، title، fieldNames) print fieldValues09 من 10
إضافة الصور
يمكنك إضافة الصور إلى واجهات EasyGUI الخاصة بك عن طريق تضمين كمية صغيرة جدًا من التعليمات البرمجية.
قم بحفظ صورة إلى جهاز Raspberry Pi في نفس الدليل مثل البرنامج النصي EasyGUI الخاص بك وقم بتدوين اسم الملف وامتداده (على سبيل المثال ، image1.png).
لنستخدم مربع الزر كمثال:
from easygui import * import time image = "RaspberryPi.jpg" msg = "هل هذا هو Raspberry Pi؟" options = ["Yes"، "No"] رد = buttonbox (msg، image = image، options = options) في حالة الرد == "Yes": print "Yes" else: print "No"10 من 10
المزيد من الميزات المتقدمة
لقد قمنا بتغطية خيارات EasyGUI الرئيسية "الأساسية" هنا للبدء ، ومع ذلك ، هناك الكثير من خيارات الصناديق والأمثلة المتاحة اعتمادًا على مقدار ما تريد معرفته ، وما يتطلبه مشروعك.
مربعات كلمة المرور ، مربعات الرموز ، وحتى مربعات ملف متوفرة على سبيل المثال لا الحصر. إنها مكتبة متعددة الاستخدامات يسهل التقاطها خلال دقائق ، مع بعض إمكانيات التحكم في الأجهزة الرائعة أيضًا.
إذا كنت ترغب في تعلم كيفية ترميز أشياء أخرى مثل Java أو HTML أو أكثر ، فإليك أفضل موارد ترميز عبر الإنترنت متوفرة.