PyQt

PyQt هي واجهة برمجة تطبيقات بايثون لمجموعة أدوات واجهة المستخدم الرسومية Qt متعددة المنصات ، وتُنفذ كإضافة بايثون . PyQt برنامج مجاني طورته شركة Riverbank Computing البريطانية. وهو متاح بشروط مشابهة لشروط إصدارات Qt الأقدم من 4.5؛ أي أنه يخضع لأنواع مختلفة من التراخيص، بما في ذلك رخصة جنو العمومية العامة (GPL) والرخصة التجارية، ولكنه لا يخضع لرخصة جنو العمومية الصغرى (LGPL). [ 3 ] يدعم PyQt نظام التشغيل مايكروسوفت ويندوز، بالإضافة إلى أنواع مختلفة من أنظمة يونكس ، بما في ذلك لينكس وماك أو إس . [ 4 ]

تُنفذ مكتبة PyQt حوالي 440 فئة وأكثر من 6000 دالة وطريقة [ 5 ] بما في ذلك:

لإنشاء هذه الروابط تلقائيًا، قام فيل طومسون بتطوير أداة SIP ، والتي تُستخدم أيضًا في مشاريع أخرى.

تاريخ

تم إصدار PyQt لأول مرة بواسطة شركة Riverbank Computing في عام 1998. [ 8 ]

في أغسطس 2009، سعت نوكيا إلى إتاحة واجهة برمجة تطبيقات بايثون بموجب ترخيص LGPL . في ذلك الوقت، كانت نوكيا تمتلك شركة Qt Software ، مطورة مكتبة QT. بعد فشل التوصل إلى اتفاق مع شركة Riverbank Computing، أصدرت نوكيا واجهة برمجة تطبيقاتها الخاصة، PySide ، التي توفر وظائف مماثلة. [ 9 ]

المكونات الرئيسية

شعار PyQt البديل

يحتوي PyQt4 على وحدات بايثون التالية.

  • تحتوي وحدة QtCore على الفئات الأساسية غير المتعلقة بواجهة المستخدم الرسومية، بما في ذلك حلقة الأحداث وآلية الإشارات والفتحات في Qt. كما تتضمن تجريدات مستقلة عن النظام الأساسي لـ Unicode ، والخيوط، والملفات المُرتبطة، والذاكرة المشتركة ، والتعبيرات النمطية ، وإعدادات المستخدم والتطبيق.
  • تحتوي وحدة QtGui على معظم فئات واجهة المستخدم الرسومية. وتشمل هذه الفئات عددًا من فئات الجداول والأشجار والقوائم المبنية على نمط تصميم نموذج-عرض-متحكم . كما توفر الوحدة عنصر واجهة مستخدم متطورًا ثنائي الأبعاد (لوحة الرسم) قادرًا على تخزين آلاف العناصر، بما في ذلك عناصر واجهة المستخدم العادية.
  • تحتوي وحدة QtNetwork على فئات لكتابة عملاء وخوادم UDP و TCP . كما تتضمن فئات تُنفذ عملاء FTP و HTTP وتدعم عمليات البحث عن أسماء النطاقات (DNS) . يتم دمج أحداث الشبكة مع حلقة الأحداث، مما يُسهل تطوير التطبيقات الشبكية.
  • تحتوي وحدة QtOpenGL على فئات تُمكّن من استخدام OpenGL في عرض الرسومات ثلاثية الأبعاد في تطبيقات PyQt.
  • تحتوي وحدة QtSql على فئات تتكامل مع قواعد بيانات SQL مفتوحة المصدر والخاصة. وتتضمن نماذج بيانات قابلة للتعديل لجداول قواعد البيانات التي يمكن استخدامها مع فئات واجهة المستخدم الرسومية. كما تتضمن تطبيقًا لـ SQLite .
  • تحتوي وحدة QtSvg على فئات لعرض محتويات ملفات SVG. وهي تدعم الميزات الثابتة لـ SVG 1.2 Tiny.
  • تقوم وحدة QtXml بتنفيذ واجهات SAX و DOM لمحلل XML الخاص بـ Qt.
  • تُنفّذ وحدة QtMultimedia وظائف الوسائط المتعددة منخفضة المستوى. عادةً ما يستخدم مطورو التطبيقات وحدة phonon .
  • تحتوي وحدة QtDesigner على فئات تسمح بتوسيع Qt Designer باستخدام PyQt.
  • تُدمج وحدة Qt الفئات الموجودة في جميع الوحدات المذكورة أعلاه في وحدة واحدة. تكمن ميزة ذلك في عدم الحاجة إلى معرفة الوحدة الأساسية التي تحتوي على فئة معينة. أما عيبها، فهو تحميل إطار عمل Qt بالكامل، مما يزيد من استهلاك الذاكرة للتطبيق. يبقى اختيار استخدام هذه الوحدة المدمجة أو الوحدات المكونة لها بشكل منفصل مسألة تفضيل شخصي.
  • تُوفّر وحدة uic دعمًا للتعامل مع ملفات XML التي يُنشئها Qt Designer والتي تصف واجهة المستخدم الرسومية كليًا أو جزئيًا. وهي تتضمن فئات تقوم بتحميل ملف XML وعرضه مباشرةً، وفئات أخرى تُولّد شيفرة بايثون من ملف XML لتنفيذها لاحقًا. [ 10 ]

يحتوي PyQt5 على وحدات بايثون التالية:

  • QtQml
  • كيو تي كويك
  • كيو تي كور
  • واجهة المستخدم الرسومية Qt
  • دعم الطباعة Qt
  • QtWidgets
  • سياق QGL
  • تنسيق QGL
  • QGLWidget
  • QtWebKit
  • QtWebKitWidgets

الإصدارات

يعمل الإصدار 4 من PyQt مع كل من Qt 4 و Qt 5. يدعم الإصدار 5 من PyQt الإصدار 5 من Qt فقط، [ 4 ] ويتخلى عن دعم الميزات التي تم إيقافها في Qt 5. [ 11 ]

مثال "مرحباً بالعالم"

النتيجة في KDE Plasma 4

الكود أدناه المكتوب لـ PyQt6 يعرض نافذة صغيرة على الشاشة.

#!/usr/bin/env python3"""نقدم هنا الواردات اللازمة.توجد عناصر واجهة المستخدم الرسومية الأساسية في وحدة QtWidgets."""استيراد sysfrom PyQt6.QtWidgets import QApplication , QWidget# يجب على كل تطبيق PyQt إنشاء كائن تطبيق.# يوجد كائن التطبيق في وحدة QtWidgets.app = QApplication ([])# عنصر واجهة المستخدم QWidget هو الفئة الأساسية لجميع كائنات واجهة المستخدم في PyQt.# نوفر المُنشئ الافتراضي لـ QWidget. المُنشئ الافتراضي ليس له مُنشئ أب.# يُطلق على عنصر واجهة المستخدم الذي ليس له عنصر أب اسم نافذة.الجذر = QWidget ()root.resize ( 320 , 240 ) # تقوم الدالة resize ( ) بتغيير حجم الأداة.root.setWindowTitle ( " Hello , World!" ) # هنا نحدد عنوان نافذتنا.root . show () # تقوم الدالة show() بعرض عنصر واجهة المستخدم على الشاشة.sys.exit ( app.exec ( ) ) # وأخيرًا ، ندخل في الحلقة الرئيسية للتطبيق.

تطبيقات بارزة تستخدم PyQt

انظر أيضاً

  • PyGTK (أغلفة بايثون لـ GTK)
  • PySide (غلاف بايثون بديل لمجموعة أدوات Qt)
  • wxPython (غلاف بايثون لمجموعة أدوات wx)
  • كيفي
  • Tkinter (مرفق مع بايثون)

مراجع

  1. https://riverbankcomputing.com/news/PyQt_v6.9.1_Released .{{cite web}}: مفقود أو فارغ |title=( مساعدة )
  2. "تنزيل PyQt4" . Riverbankcomputing. 2010. تم الاطلاع عليه بتاريخ 19-04-2010 .
  3. "Riverbank | تجاري | الأسئلة الشائعة حول الترخيص" . Riverbankcomputing.com . تم الاطلاع عليه بتاريخ 24-06-2015 .
  4. 1 2 "ما هو PyQt؟" . ريفر بانك كومبيوتينج . تم الاسترجاع في 18-09-2014 .
  5. "PyQt v4 - روابط بايثون لـ Qt v4" . Riverbankcomputing. مؤرشف من الأصل بتاريخ 29-04-2008 . تم الاطلاع عليه بتاريخ 17-04-2010 .
  6. "مرجع فئة QSqlDatabase" . Pyqt.sourceforge.net . تم الاطلاع عليه بتاريخ 25-09-2014 .
  7. ويكي بايثون إنفو
  8. جارمول، كاثرين؛ لوسون، ريتشارد (30-05-2017). استخراج البيانات من مواقع الويب باستخدام بايثون . دار نشر باكت المحدودة. ص 105. ISBN  978-1-78646-429-3.
  9. الأسئلة الشائعة، مارتن فيتزباتريك. آخر تحديث (21 يونيو 2019). "PyQt5 مقابل PySide2: ما الفرق بين مكتبتي بايثون Qt؟" . واجهات المستخدم الرسومية لبايثون . تم الاطلاع عليه بتاريخ 25 يونيو 2022 .{{cite web}}له |first=اسم عام ( مساعدة )
  10. "ريفر بانك | البرمجيات | باي كيو تي | ما هو باي كيو تي؟" . Riverbankcomputing.co.uk . تاريخ الاسترجاع: 15 أبريل 2010 .
  11. "الاختلافات بين PyQt4 و PyQt5" ، دليل مرجعي لـ PyQt 5.3.2 ، مؤرشف من الأصل بتاريخ 14 أغسطس 2018 ، تم الاطلاع عليه بتاريخ 18 سبتمبر 2014

للمزيد من القراءة