أنا في حاجة إلى خريطة طريق لتعلم تطوير تطبيقات سطح المكتب باستخدام بايثون.
رجاءً إن كنت من أهل هذا المجال فأفدني.
التعليقات
بشكل بديهي في البداية ستحتاج إلى تعلم بايثون والتعمق في اللغة نفسها وبناء مشاريع من خلالها قبل استخدام أي مكتبة أو إطار، وخاصًة تعلم الـ OOP.
بعد ذلك عليك تعلم إطار أو مكتبة خاصة بتطوير الـ GUI أي واجهة المستخدم لتطبيقات سطح المكتب، ومنها:
- Tkinter وهي مكتبة قياسية مع بايثون، أي مدمجة في بايثون لكنها ليست متقدمة.
- PyQt أو PySide توفر أدوات غنية لتطوير واجهات مستخدم متقدمة.
- Kivy و wxPython مناسبة لتطوير تطبيقات تعمل على منصات متعددة.
تعلم الأساسيات من خلال أحد الإطارات أو المكتبات السابقة بشكل متدرج، مثل إنشاء النوافذ الأساسية، إضافة عناصر تحكم مثل الأزرار، النصوص، القوائم، التعامل مع الأحداث وتنظيم الأدوات داخل النوافذ (layouts).
بعد ذلك تطوير مستواك من خلال تعلم إدارة النوافذ المتعددة، دمج قواعد البيانات (SQLite, SQLAlchemy)، العمل مع ملفات JSON و CSV، والتعامل مع الشبكات والاتصال بالإنترنت (requests, sockets).
أخيرًا تحويل الشفرة المصدرية إلى ملفات تنفيذية بواسطة PyInstaller أو cx_Freeze وإنشاء ملفات التثبيت عن طريق Inno Setup أو NSIS.
لكن للعلم بايثون ليس من ضمن ميزاتها تطوير تطبيقات لسطح المكتب فهي ضعيفة في ذلك.
أنا كنت (ولا زلت أحيانا) مطور تطبيقات سطح مكتب باستخدام Python.
بداية يجب أن تصل إلى مستوى متقدم في لغة Python. ليس فقط الأساسيات فيها، بل يجب أن تحسن أيضا مواضيع التعامل مع الملفات والنظام، يعني يجب دراسة بعض الوحدات من المكتبة القياسية الموجودة ضمن الأقسام:
- File and Directory Access
- Data Persistence
- Data Compression and Archiving
- File Formats
- Generic Operating System Services
- وبشكل خاص قسم Concurrent Execution إذا كنت تنوي إنشاء برامج ذات واجهة رسومية، فلا يمكن تقريبا أن يكون هناك برنامج ذو واجهة رسومية يعمل بشكل صحيح بدون استخدام Threads التي يتم تدريسها ضمن هذا القسم.
تجد هذه الأقسام هنا:
بعد أن تصل إلى هذا المستوى في Python، يمكنك أن تنتقل إلى دراسة أي إطار عمل أو مكتبة تسمح بإنشاء الواجهات الرسومية. توجد عدة خيارات، منها المضمن مثل Tkinter ومنها الخارجي مثل wxPython و PySide/PyQt.
اختياري الشخصي في هذه المكتبات هو PySide، وهي ربط لمكتبة Qt المكتوبة بلغة C++ مع برامج Python. كنت سابقا أستخدم PyQt، وفي الواقع، من الناحية البرمجية، هما تقريبا نفس الشيء ومتوافقان في أغلب الكود. لكن فائدة PySide هي أنها مفتوحة المصدر بالكامل ومدعومة مباشرة من نفس الشركة الداعمة لـQt الأصلية.
أعتقد أصدقائنا @Hedidi_chihab و @meskineyasser حالما يكونوا متاحين يمكنهم إضافة معلومات جيدة بهذا الخصوص إن شاء الله.