أساسيات واجهة المستخدم الرسومية مع PyQT

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

في هذه السلسلة سنقوم بإستخدام  PyQt4 ولكن هناك نسخة أحدث يمكنك إستخدامها حيث توجد بعض الإختلافات بين النسختين ولكن ليس كثيرا .

أولا علينا الحصول على  PyQT4 وبالنسبة لمستخدمي ويندوز يمكنك تحميل النسخة المطلوبة من الموقع الرسمي ، أما بالنسبة لمستخدمي لينكس وماك فيكفي كتابة السطر التالي :


sudo apt-get install python-qt4

بعد الإنتهاء من تثبيت PyQT4 سنبدأ في عملية في إنشاء تطبيق بسيط

أولا علينا القيام بعملية الإستيراد الأساسية


import sys

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


from PyQt4 import QtGui

هنا قمنا بإستدعاء QtGui والتي تتعامل مع جميع ما يتعلق بواجهة الرسومية مع PyQT وقد يبدأ البعض في التسأل جميع أدوات  PyQT هي أدوات تتعلق بواجهات الرسومية ؟ أجل لقد خاب ظنك فPyQT  لديها الكثير من الأشياء الأخرى إلى جانب أدوات الواجهات الرسومية .

و  QtGui هي مجرد أدات خاصة بالأشياء الرسومية وفي مايلي جميع أقسام  PyQT :

  • QtGui : تتعامل مع العناصر الرسومية .
  • QtCore : التعامل مع أساسيات أخرى غير العناصر الرسومية .
  • QtNetwork : على حسب إسمها التعامل مع الشبكات .
  • QtOpenGL: تسمح بدمج مكتبة الرسومات المفتوحة OpenGL.
  • QtSql : معالجة قواعد البيانات  SQL
  • QtSvg : دعم الرسومات ناقلات الدعم .
  • QtXML : معالجة بيانات XML .

الأن نحن بحاجة إلى تعريف نوع التطبيق


app = QtGui.QApplication(sys.argv)

نحن بصدد إنشاء كائن تطبيق Q وحفظه إلى التطبيق،هنا نقوم بتمرير مدخلات sys.argv  بسبب أن هذا الأخير يسمح لنا بتمرير مدخلات سطر الاوامر إلى التطبيق .

window = QtGui.QWidget()

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

ستفهم المزيد خول هذه المفاهيم كل ماتعمقت في برمجة الواجهات الرسومية .

window.setGeometry(0, 0, 500, 300)

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

التابع .setGeometry يأخذ منا أربع تعليمات الأولى عبارة عن إحداثية بداية النافذة أفقيا و الثانية عبارة عن بداية النافذة عموديا و أما التعليمات الباقية عبارة عن أبعاد النافذة وفي مثالنا هذا إخترنا 500 بيكسل عرض و 300 بيكسل طول.


window.setWindowTitle("PyQT Tuts!")

هنا كل ماقمنا به هو إعطاء إسم للنافذة فقط .

وأخيرا عندما نكون راضيين عن واجهة المستخدم التي قمنا بإنشاءها نقوم بإستدعاءها.


window.show()

show() تقوم بجلب النافذة إلى شاشة المستخدم وهي تابع من التوابع الخاصة ب  QT

وها هو الكود الكامل للواجهة الرسومية التي قمنا بإنشاءها .


import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)

window = QtGui.QWidget()
window.setGeometry(0, 0, 500, 300)
window.setWindowTitle("PyQT Tuts!")

window.show()

لحد الساعة لدينا بعض أساسيات تطبيق واجهة المستخدم الرسومية ولدينا فكرة عن كيفية عمل هذه الأخيرة مع QT وفي المرة القادمة سنتعلم كيفية إرساء الأساس للتطبيق بالكامل .

الجزءالثاني : هيكل تطبيقات PyQT

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

4 من التعليقات على موضوع “أساسيات واجهة المستخدم الرسومية مع PyQT

  1. عبد الله في 5 سبتمبر، 2017 at 7:24 م قال:

    شرح جميل ورائع نحتاج مثله بكثرة خاصة بهذه المكتبة.
    نريد المزيد من الشروح وجزاكم الله خيراً.

  2. مصري شاطر في 11 سبتمبر، 2017 at 9:26 ص قال:

    الف شكر ياباشا

  3. ashragt في 11 سبتمبر، 2017 at 3:09 م قال:

    الدرس ممنتع..لكن انا استخدم ويندوز هل يتم الكتابه بشكل طبيعي

  4. Pingback: بايثون العربي: هيكل تطبيقات PyQT | Adrian Tudor Web Designer and Programmer

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Post Navigation