October 18th, 2017

بايثون العربي: هيكل تطبيقات PyQT

Programing, Python, by admin.

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

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

تبقى الأساسيات هي نفسها، نحن بحاجة إلى تعريف التطبيق، تعريف واجهة المستخدم الرسومية، ونحن دائما بحاجة إلى القيام ب show() لجلب النافذة للمستخدم وعادة ستبدوا كمايلي :

 app = QtGui.QApplication(sys.argv) تعريف التطبيق # GUI = Window() تعريف واجهة المستخدم الرسومية show  سيتم إخفاءها هنا # sys.exit(app.exec_()) هذا السطر من أجل تأمين الخروج بشكل لائق # 

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

 class Window(QtGui.QMainWindow): def __init__(self): super(Window, self).__init__() self.setGeometry(50, 50, 500, 300) self.setWindowTitle("PyQT tuts!") self.setWindowIcon(QtGui.QIcon('pythonlogo.png')) 

أولا قمنا بإنشاء كائن النافذة يرث خصائص ومميزات  QtGui.QMainWindow

 class Window(QtGui.QMainWindow): 

بعد ذلك قمنا بإنشاء طريقة init

 def __init__(self): 

في السطر الموالي الهدف منه إرجاع قيمة ومهمة الكائن الأصلي

 super(Window, self).__init__() 

ثم قمنا بتعيين إحداثيات وحجم النافذة بالإضافة إلى عنوان الأخيرة

 self.setGeometry(50, 50, 500, 300)
self.setWindowTitle("PyQT tuts!") 

ثم قمنا بتعيين إيقونة للنافذة عبر السطر التالي :

 self.setWindowIcon(QtGui.QIcon('pythonlogo.png')) 

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

 self.show()

السبب الذي نريد من وراءه إرث من كائن QtGui.QMainWindow هو أننا نريد إستعمال جميع خصائص ومميزات الواجهة الرسومية التي يقدمها لنا  QT  ومع هذا مازلنا نريد إنشاء كائن خاص بنا من أجل التخصيص .

وإستخدمنا super من أجل إستخدام خصائص الكائن الأصلي على هذه النافذة وكأنها كائن QT.

أما باقي الكود فقد سبق لنا أون تطرقنا له من قبل .

لاحظ الأن أنه من أجل الإشارة إلى جميع الجوانب إستخدمنا self وهي تشير إلى الكائن الحالي،والذي هو بالأساس كائن QT وهذا يعني بواسطة self يمكننا الإشارة إلى جميع الطرق التي قمنا بإرثها من QtGui.QMainWindow بالإضافة إلى الطرق التي نكتبها بأنفسنا في هذا الكائن.

 

إلى هنا نكون قد إنتهينا وإليك الكود الكامل لهذا الدرس :

import sys
from PyQt4 import QtGui class Window(QtGui.QMainWindow): def __init__(self): super(Window, self).__init__() self.setGeometry(50, 50, 500, 300) self.setWindowTitle("PyQT tuts!") self.setWindowIcon(QtGui.QIcon('pythonlogo.png')) self.show() app = QtGui.QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())

في المرة القادمة سنتطرق إلى كيفية إستخدام الأزرار .

وإذا فاتك الدرس الأول يمكن الإطلاع عليه من هنا

Back Top

Leave a Reply