Star Media

مرحبا بك عزيزي الزائر. بعض الأقسام و الروابط لا تضهر للزوار المرجوا منك أن تعرّف بنفسك و . إن لم يكن لديك حساب بعد, نتشرف بدعوتك لإنشائه و تصبح أحد أعضاء عائلتنا المتواضعة
<script type="text/javascript"><!--
document.write('<s'+'cript type="text/javascript" src="http://www.adallnetwork.com/sh.php?z=28&pl=1581&j=1&code='+new Date().getTime()+'"></s'+'cript>');
// --></script>
<noscript>
<iframe src="http://www.adallnetwork.com/sh.php?z=28&pl=1581" width="728" height="90" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>
</noscript>
<script type="text/javascript"><!--
zone = "38";
pl = "4150";
url = "http://www.adallnetwork.com";
//--></script>
<script type="text/javascript" src="http://www.adallnetwork.com/s.js"></script>

أقوى موقع يوفر البرامج النادرة


    أول دورة من نوعهــا على صعيد المواقع العربية : دورة Python

    شاطر
    avatar
    DJONI
    المدير العام على مجموعة مواقع STARMEDIA
    المدير العام على مجموعة مواقع STARMEDIA

    ذكر
    عدد الرسائل : 358
    العمر : 33
    الجنسية : Tunisien
    السٌّمعَة : 1
    نقاط : 16059
    تاريخ التسجيل : 22/06/2008

    رد: أول دورة من نوعهــا على صعيد المواقع العربية : دورة Python

    مُساهمة من طرف DJONI في الإثنين 9 مارس - 17:56

    السلام عليكم و رحمة الله و بركاته

    محور درسنا القادم بإذن الله سيكون حول الواجهات الرسومية GUI
    و نستعمل لهذا مكتبة QT لدى لكي تستطيع تتبع الدرس يجب ان تحمل PyQt
    من الموقع التالي

    http://www.riverbankcomputing.co.uk/.../pyqt/download

    هناك PyQt مخصص للويندوز و اللينيكس و الماك

    لأصحاب الويندوز عند التحميل نصبه على الجهاز و سينصب مباشرتا في مجلد python25 (المجلد الذي يحوي مفسر البايثون)

    لأصحابل لينيكس يستطيع تحميل PyQt4 من الموقع الذي وضعته الآن
    و من توزيعته قديمة كالـ Debian Etch
    ينصب qt4 designer و ينصب مكتبة qt الخاصة بالبايثون و اسمها
    python-qt4 و ينصب ايضا pyqt4-dev-tools
    و كلها موجودة في مدير الحزم مسبقا و لا يحتاج لأي تحميل
    على كل حال لمن واجه صعوبة فليطرح سؤاله هنا
    وفقكم الله
    avatar
    DJONI
    المدير العام على مجموعة مواقع STARMEDIA
    المدير العام على مجموعة مواقع STARMEDIA

    ذكر
    عدد الرسائل : 358
    العمر : 33
    الجنسية : Tunisien
    السٌّمعَة : 1
    نقاط : 16059
    تاريخ التسجيل : 22/06/2008

    رد: أول دورة من نوعهــا على صعيد المواقع العربية : دورة Python

    مُساهمة من طرف DJONI في الإثنين 9 مارس - 17:58

    تتبع معي
    اولا اذهب الى FILE>NEW>Project



    ثم اعطي اسما للمشروع الجديد



    الآن سيظهر لك المشروع على يسار النافذة



    كيلك يمين على المشروع ثم اختر NEW>File



    يحيب ان ينتهي الإسم بـ .py

    الآن تستطيع كتابة الأكواد كالعادة



    عندما تريد تشغيل الكود اضغط على اسم ملف المشروع بـ كليك يمين
    ثم اختر RUN As ثم Python Run













    avatar
    DJONI
    المدير العام على مجموعة مواقع STARMEDIA
    المدير العام على مجموعة مواقع STARMEDIA

    ذكر
    عدد الرسائل : 358
    العمر : 33
    الجنسية : Tunisien
    السٌّمعَة : 1
    نقاط : 16059
    تاريخ التسجيل : 22/06/2008

    رد: أول دورة من نوعهــا على صعيد المواقع العربية : دورة Python

    مُساهمة من طرف DJONI في الإثنين 9 مارس - 18:01

    بسم الله الرحمن الرحيم و الصلاة و السلام على اشرف المرسلين سيدنا محمد و صحبه اجمعين
    الإخوة الأفاضل السلام عليكم و رحمة الله و بركاته
    ها نحن اليوم بعد هذه المسيرة الشيقة وصلنا للمحاور الأخيرة من الدورة و قاربنا على نهايتها
    و بعد دراسة كل الاساسيات و بعد ان استوعبنا الـOOP نكون قد جهزنا للواجهات الرسومية
    و بعد بحث و تفحص قررت ان يكون درسنا حول مكتبة Qt و ذلك باستعمال PyQt
    لأنه توجد العديد من المكاتب المخصصة للواجهات الرسومية في لغة البايثون اشهرها
    Thkinter, WxPython, PyQt, Gtk Pywm
    و سنقتصر في هذه الدورة علىPyQt فقط

    اسم المكتبة مكون من جزئين الجزء الأول Py و تعني Python و الحزء الثاني Qt
    و لكي يكون تعريفنا لهذه المكتبة صحيح و واضح يجب ان نعرف مكتبة Qt اولا

    مكتبةQt

    عبارة عن منصة كاملة للتطوير التطبيقات الرسوميةGui (واجهات)Graphical user interface و الغير رسومية
    كتبت هذه المنصة بلغة سي++ تعمل منصة Qt على عدة انظمة تشغيل و هذا ما
    زادها شهرة و ساعد في تربعها على العرش بسرعة و مما زادها شهرتا و
    استعمالا انها تعمل مع عدة لغاة برمجية و ذلك بواسطة مكاتب مخصصة كما
    سنستعملها نحن مع لغة البايثون و بالغضافة للبايثون هناك الس و السي ++
    جافا باسكال سي شارب روبي بيرل ...
    و التالي بعض البرامج التي عملت بالـQt
    Adobe Photoshop Albums
    Doxygen
    Google Earth
    KDE
    Motorola A760
    MythTV
    Opera
    Perforce
    Scribus
    Skype
    VirtualBox
    VLC media player [12]
    Pencil

    لمن يريد المعرفة اكثر عن المنصة هذا الرابط الخاص بمنصة Qt
    http://fr.wikipedia.org/wiki/Qt


    مكتبة PyQt

    كما قلنا من قبل يتكون اسم هذه المكتبة من جزئين Qt و Python و تستعمل هذه
    المكتبة لبرمجة الواجهات الرسومية باستعمال لغة البايثون انطلاقا من مكتبة
    Qt
    فهذه المكتبة عبارة عن خليط متناسق مكون من لغة البايثون و مكتبة Qt بحيث
    ان هذه المكتبة تحتوي على 300 كلاس و حوالي 6000 دالة و كمكتبة Qt تماما
    تعمل PyQt على عدة منصات منها اللينيكس و الويندوز و الماك

    تتكون هذه المكاتب (Qt و PyQt) من عدة وحدات (module) و يلزمنا معرفة هذه الوحدات قبل الإنطلاق مع هذه المكتبة
    القائمة التالية تظم الوحدات module التي تظمها مكتبة PyQt
    QtCore
    QtGui
    QtNetwork
    QtOpenGL
    QtSql
    QtXml
    QtSvg

    QtCore
    تستعمل هذه الوحدة للوظائف الغير واجهية أي انها ليست اجزاء خاصة بالواجهات الرسومية
    كالتعامل مع الملفات و المجلدات او الساعة و التعاملات الخاصة مع الـ string
    كما ان هذه الوحدة تستكلف بالإتصال بين مختلف اجزاء الواجهة signal & slots
    QtGui
    تحتوي هذه الوحدة على كل العناصر الخاصة بالواجهات الرسومية كالأزرار و النافذة القوائم القوائم المتحركة ....الخ
    QtNetwork
    تحتوي هذه الوحدة على مجموعة الكلاس الخاصة ببرمجة الشبكات و التعامل معها
    QtOpenGL
    تستعمل هذه الوحدة للتعامل مع الابعاد الثنائية و الثلاثية (2D & 3D)
    و ذلك بالإعتماد على مكتبة OpenGL فهذه الوحدة توفر لنا التحويل من الـQt
    الى مكتبة OpenGL فهي توفر لنا جسر بين المكتبتان
    QtSql
    توفر لنا هذه الوحدة عدة كلاس للتعامل مع قواعد البيانات كربط الواجهة مع قاعدة بيانات و تبادل المعلومات بين القاعدة و الواجهة ...
    QtXml
    توفر لنا هذه الوحدة ايضا عدة كلاس للتعامل مع ملفات الـxml
    QtSvg
    وحدة توفر لنا كلاس للإظهار محتوى ملفات من نوع SVG
    Scalable Vector Graphics
    و هي عبارة عن لغة لمعرفة الأبعاد الثنائية two-dimensional للرسومات المتحركة او للبرامج الرسوميةالمنعمولة بـxml

    كما نرى قوة هذه المكتبة فهي منصة كاملة للتطوري و تلبي كل رغبات المبرمج .
    سيكون درسنا مقسم الى جزئين
    الجزء الأول : في الجزء الأول سنتعلم استعمال PyQt و برمجة الواجهات الرسومية كتابيا
    الجزء الثاني :في هذا الجزء سنستعمل Qt
    Designer و هو عبارة عن مصمم واجهات كالفيجيوال تماما و يغنينا هذا المصمم
    عن كتابة كود الواجهة لأن هذا امر متعب جدا و قد يقول قائل لماذا لا ننطلق
    مع المصمم مباشرتا و نكفي انفسنا العناء .
    لو كان هذا ممكنا لأعتمدناه و لكنه غير ممكن لأننا عندما نصمم واجهة
    رسومية و نضع عليها الأزرار و القوائم .. سنقوم بتحويل هذه الواجهة الى
    كود برمجي فلو لم ندرس الجزء الأول لن تستطيع فهم كودالواجهة و لن تعرف
    اين تضع كود برنامجك
    ضف الى ذلك ان احسن طريقة للتعلم الواجهات الرسومية هي تعلمها كوديا
    (بكتابة الأكواد) و تصميميا حتى لا نقع في الفخ الذي وقع فيه اصحاب
    الفيجيوال .
    و بإذن الله سنرى الفرق الشاسع جدا جدا بين الواجهات بالـQt و الفيجيوال
    الخاص بالويندوز وسيلاحظ هذا الفرق كل من استعمل الفيجيوال لأنه و ببساطة
    تعتبر منصة Qt من اقوى المكتابات الحالية في العالم

    الخطوة الاولى مع الواجهات


    كود PHP:




    import sys

    from PyQt4 import QtGui

    app
    =QtGui.QApplication(sys.argv)

    button=QtGui.QPushButton("salam Smile", None)

    button.show()

    sys.exit(app.exec_())









    //////////////////////////////////


    كود PHP:




    import sys

    from PyQt4 import QtGui








    في السطرين الأولين قمنا باستدعاء المكاتب اللازمة للبرنامج فقمنا باستدعاء مكتبة sys
    ثم من مكتبة PyQt قمنا باستدعاء الوحدة module QtGui و لقد عرفنا وحدات
    المكتبة فوق فاستدعيان هذه الوحدة لأننا سنتعامل مع واجهة رسومية 'نافذة,
    ازرار ,قاوئم ' و كلها محتوات في هذه الوحدة
    /////////////

    كود PHP:




    app=QtGui.QApplication(sys.argv)








    هذا السطر هو الأهم في الكود كله و بدونه لن نستطيع التعامل مع
    واجهة البرنامج فكل مشروع او كود يتعامل مع الوجهات يجب ان يحتوي على هذا
    السطر و معنى هذا السطر اننا قمنا بانشاء اوبجيكت object من الكلاس
    QApplication
    فQApplication تعتبر هي الهيكل الكامل للبرنامج او الواجهة و لا يفهم من
    كلامي هذا انها هي النافذة التي ستظهراو هي عبارة عن نافذة لا فالمعنى
    أكبر من هذا فالأوبجيكت الذي انشئناه app عبارة عن الهيكل الشامل للبرنامج
    و كل ما سيأتي سواء نوافذ او ازرار ..مبني عليه و حتى نفهم برمجة الواجهات
    اكثر نضرب مثالا
    انت تريد ان تنشئ سيارة
    اولا تقوم بانشاء الهيكل الكامل للسيارة و بعدها تجهز هذا الهيكل فتنشئ
    النوافذ و العجلات و الأبواب و تعطي الوانا لهذه الاجزاء و كل جزء يحتوي
    على عمل معين فالنوافذ تنزل و تصلع و العجلات تدور و الأبواب تفتح و تقفل .
    و هذه الأعمال ايضا مرتبطة ببعضها البعض ثفعند الضغط على الزر الفلاني تصعد النافذة و عند الضغط على المكابح تتوقف العجلات ...الخ
    نفس الشيئ بالنسبة للواجهات تنشئ الأوبجيكت الاساسي الذي يلعب دور الهيكل
    ثم تقوم بتجهيز هذا الهيكل بالأزرار و و ....تعطيه لونا و عنوانا ثم تقوم
    بتقسيم الأعمال الفزر الفلاني يفتح النافذة الفلانية و الزر الآخر يحفظ
    السطور الكتوبة في المكان الفلاني ....الخ

    sys.argv
    عبارة عن باراميتر يحتوي على قائمة من arguments و التي تستغل من سطر
    الأوامر للتعامل مع البرنامج او المشروع و ذلك طبعا عند تشغيل البرنامج من
    سطر الأوامر shell للأصحاب اللينيكس مثلا او الـDos لاصحاب الويندوز
    فمثلا نستطيع ان نحدد من سطر الأوامر شكل الواجهة التي يشغل بها المشروع shell
    اولا اعطي اسما للكود في الأعلى سمه مثلا
    first_pyqt.py
    و من سطر الأوامر شغله و ذلك بكتابة python ثم اسم الملف
    python first_pyqt.py
    الآن لكي نعرف فائدة sys.arvg سنقوم بتحديد الـstyle الذي ستشغل به الواجهة و ذلك بستعمال argument من القائمة اسمه style

    كود PHP:




    python fist_pyqt.py -style=Glider








    لاصحاب الويندوز يستطيع ان يختار اي اسم ثيم من الذين موجدين بالجهاز
    اذا باختصار هذه هي الفائدة من –سيس ارقيمنت نستعملها خصاتا عن تشغيل سكريبت البرنامج من سطر الأوامر

    /////////////////

    كود PHP:




    button=QtGui.QPushButton("salam Smile", None)










      الوقت/التاريخ الآن هو الثلاثاء 16 يناير - 16:39