إطار عمل KDE
تُعدّ KDE Frameworks مجموعة من المكتبات وأطر البرمجيات الجاهزة للاستخدام مع أي حزمة برمجية أو تطبيق قائم على Qt على أنظمة تشغيل متعددة . [ 6 ] تتميز هذه المجموعة بحلول وظيفية مطلوبة بكثرة، مثل تكامل الأجهزة، ودعم تنسيقات الملفات، وعناصر تحكم رسومية إضافية ، ووظائف الرسم البياني، والتدقيق الإملائي ، وتُشكّل الأساس التقني لـ KDE Plasma و KDE Gear . يتم توزيعها بموجب رخصة جنو العمومية الصغرى (LGPL). [ 7 ] واعتبارًا من سبتمبر 2025، كان أحدث إصدار مستقر هو KDE Frameworks 6 (KF6).
ملخص
تعتمد أطر عمل KDE على Qt، مما يتيح استخدامًا أوسع للغة QML ، وهي لغة برمجة تصريحية أبسط تعتمد على JavaScript ، لتصميم واجهات المستخدم. كما يتيح محرك عرض الرسومات المستخدم في QML واجهات مستخدم أكثر سلاسة على مختلف الأجهزة. [ 8 ]

منذ تقسيم مجموعة برامج KDE إلى KDE Frameworks 5 و KDE Plasma 5 و KDE Applications ، أصبح بإمكان كل مشروع فرعي تحديد وتيرة تطويره الخاصة. تُصدر KDE Frameworks شهريًا [ 9 ] وتستخدم نظام Git . [ 10 ] [ 11 ]
ينبغي أن يكون من الممكن تثبيت أطر عمل KDE جنبًا إلى جنب مع منصة KDE 4 بحيث يمكن للتطبيقات استخدام أي منهما. [ 12 ]
استقرار واجهة برمجة التطبيقات (API) وواجهة التطبيق الثنائية (ABI)
إصدارات المنصة هي تلك التي تبدأ سلسلة (رقم الإصدار X.0). يُسمح فقط لهذه الإصدارات الرئيسية بكسر التوافق الثنائي مع الإصدار السابق. تضمن الإصدارات في السلسلة الفرعية (X.1، X.2، ...) قابلية النقل الثنائي ( واجهة برمجة التطبيقات وواجهة التطبيق الثنائية ). هذا يعني، على سبيل المثال، أن البرامج التي طُوّرت لـ KDE 3.0 ستعمل على جميع إصدارات KDE 3 (المستقبلية)؛ ومع ذلك، لا يُضمن أن يتمكن تطبيق طُوّر لـ KDE 2 من استخدام مكتبات KDE 3. تتبع أرقام الإصدارات الرئيسية لـ KDE بشكل أساسي دورة إصدار Qt، مما يعني أن KDE SC 4 مبني على Qt 4، بينما كان KDE 3 مبنيًا على Qt 3.
أنظمة التشغيل المدعومة
يجب أن يحتوي مستودع كل إطار عمل على ملف باسم metainfo.yaml . [ 13 ] يوثق هذا الملف القائم على صيانة إطار العمل، ونوعه، ونظام التشغيل المدعوم، ومعلومات أخرى. المنصات المدعومة حاليًا هي لينكس، ومايكروسوفت ويندوز، وماك أو إس، وأندرويد.
هندسة البرمجيات
بناء
تتميز الأطر البرمجية ببنية تبعية واضحة، مقسمة إلى "فئات" و"مستويات". وتشير "الفئات" إلى تبعيات وقت التشغيل:
- لا توجد تبعيات لعناصر الوظائف أثناء التشغيل.
- يشير التكامل إلى التعليمات البرمجية التي قد تتطلب تبعيات وقت التشغيل للتكامل اعتمادًا على ما يقدمه نظام التشغيل أو النظام الأساسي.
- تتطلب الحلول وجود تبعيات إلزامية أثناء التشغيل.
عناصر
تتألف حزمة KDE Frameworks من أكثر من 70 حزمة. كانت هذه الحزم موجودة كحزمة واحدة كبيرة، تُسمى kdelibs، في KDE SC 4. تم تقسيم kdelibs إلى عدة أطر عمل فردية، بعضها لم يعد جزءًا من KDE ولكنه تم دمجه في Qt 5.2. [ 14 ]
تُصنّف أطر عمل KDE إلى أربع مستويات مختلفة وفقًا لاعتمادها على مكتبات أخرى. [ 15 ] [ 16 ]
- مستويات الأطر
- المستوى 1 - يعتمد بشكل أساسي على Qt فقط ، قابل للنقل بدرجة عالية
- المستوى 2 – يعتمد على المستوى 1، ولكن لا تزال التبعيات قابلة للإدارة.
- المستوى 3 – التبعيات المعقدة، بما في ذلك المستويات 1 و 2 وما إلى ذلك.
- المستوى الرابع – يمكن لمبرمجي التطبيقات تجاهله في الغالب. وهو عبارة عن إضافات توفر ميزات إضافية مثل دعم المنصات.
| اسم | المستوى | مستودع جيت | وصف |
|---|---|---|---|
| تكامل الإطار | 4 | frameworkintegration.git | تكامل الإطار هو مجموعة من الإضافات المسؤولة عن تحسين تكامل تطبيقات Qt عند تشغيلها على بيئة عمل KDE Plasma. لا تحتاج التطبيقات إلى الربط بهذه الإضافات مباشرةً. توفر مكتبة KF5Style التكامل مع إعدادات بيئة عمل KDE Plasma لأنماط Qt. استمد نمط Qt الخاص بك من KStyle ليرث تلقائيًا العديد من الإعدادات من بيئة عمل KDE Plasma، مما يوفر تجربة مستخدم متسقة. على سبيل المثال، سيضمن ذلك اتساق إعدادات التنشيط بنقرة واحدة أو نقرتين، واستخدام أيقونات قياسية ذات سمات مميزة. |
| أنشطة كي | 3 | kactivities.git | المكونات الأساسية لمدير الأنشطة في بيئة KDE. |
| كابيدوكس | 1 | kapidox.git | نصوص برمجية وبيانات لإنشاء وثائق واجهة برمجة التطبيقات (API) بتنسيق وأسلوب قياسيين. يحتوي هذا الإطار على نصوص برمجية وبيانات لإنشاء وثائق واجهة برمجة التطبيقات (dox) بتنسيق وأسلوب قياسيين. تُستخدم أداة Doxygen لاستخراج الوثائق وتنسيقها، ولكن يوفر هذا الإطار نصًا برمجيًا وسيطًا لتسهيل عملية إنشاء الوثائق (بما في ذلك قراءة الإعدادات من الإطار المستهدف أو أي وحدة أخرى) وقالبًا قياسيًا للوثائق المُنشأة. |
| أرشيف K | 1 | karchive.git | دروس لتسهيل قراءة وإنشاء ومعالجة تنسيقات "الأرشيف" بما في ذلك zip و tar . |
| KAuth | 2 | kauth.git | يوفر طريقة ملائمة ومتكاملة مع النظام لتفريغ الإجراءات التي يجب تنفيذها كمستخدم ذي امتيازات إلى أدوات مساعدة صغيرة. |
| KBookmarks | 3 | kbookmarks.git | تتيح لك KBookmarks الوصول إلى الإشارات المرجعية المخزنة باستخدام "تنسيق XBEL" والتعامل معها. يُعدّ متصفح الويب الاستخدام الأكثر شيوعًا للإشارات المرجعية، ولكن يمكن أن يكون هذا مفيدًا أيضًا في أي تطبيق يُمكن فيه حفظ الملفات المحلية أو عناوين URL كإشارات مرجعية. |
| KCMUtils | 3 | kcmutils.git | أدوات مساعدة، تُعرف باسم KSettings، لوحدات إعدادات نظام KDE. توفر KCMUtils فئات متنوعة للعمل مع وحدات KCModules. يمكن إنشاء وحدات KCModules باستخدام إطار عمل KConfigWidgets. |
| KCodecs | 1 | kcodecs.git | KCodecs هي مكتبة لترميز السلاسل النصية، توفر مجموعة من الطرق لمعالجة السلاسل النصية باستخدام ترميزات متنوعة. يمكنها تحديد ترميز الأحرف للسلسلة النصية تلقائيًا، وترجمة كيانات XML، والتحقق من صحة عناوين البريد الإلكتروني، وإيجاد الترميزات بالاسم بطريقة أكثر مرونة من QTextCodec (مفيد، على سبيل المثال، للبيانات الواردة من الإنترنت). |
| إتمام K | 2 | kcompletion.git | إطار عمل لإكمال النصوص، يتضمن محرر سطور وقائمة منسدلة مُفعّلة للإكمال. عند كتابة أسماء الملفات وعناوين البريد الإلكتروني وغيرها من النصوص، حيث يفضل المستخدم غالبًا الاختيار من البيانات الموجودة (بما في ذلك ما كتبه سابقًا) بدلًا من إدخال نص جديد كليًا، يجد المستخدمون أنه من المفيد كتابة الأحرف القليلة الأولى فقط، ثم يقوم التطبيق بعرض مجموعة من الخيارات أو محاولة إكمال ما كتبوه. غالبًا ما توفر برامج البريد الإلكتروني وواجهات سطر الأوامر ونوافذ "فتح ملف" هذه الوظيفة. يساعد هذا الإطار في تطبيق ذلك في التطبيقات المبنية على Qt. يمكنك استخدام إحدى الأدوات الجاهزة للإكمال التي يوفرها هذا الإطار، أو دمجها مباشرةً في أدوات تطبيقك الأخرى. أسهل طريقة للبدء هي استخدام KComboBox أو KHistoryComboBox أو KLineEdit. إذا كنت ترغب في دمج الإكمال في أجزاء أخرى من واجهة المستخدم، يمكنك استخدام KCompletion لإدارة خيارات الإكمال المتاحة واختيارها. |
| KConfig | 1 | kconfig.git | إعدادات تطبيق ثابتة ومستقلة عن المنصة، تتكون من جزأين: KConfigCore وKConfigGui. يوفر KConfigCore إمكانية الوصول إلى ملفات التكوين نفسها، مما يعني أنه يقوم أيضًا بإنشاء التكوين بصيغة XML . أما KConfigGui، فيوفر طريقة لربط عناصر التحكم الرسومية (الودجات) بالتكوين، بحيث يتم تهيئتها تلقائيًا من التكوين، وتُطبّق تغييراتها تلقائيًا على ملفات التكوين الخاصة بها. |
| KConfigWidgets | 3 | kconfigwidgets.git | عناصر تحكم رسومية (أدوات) لنوافذ التكوين. أدوات لنوافذ التكوين. توفر مكتبة KConfigWidgets فئات سهلة الاستخدام لإنشاء نوافذ التكوين، بالإضافة إلى مجموعة من الأدوات التي تستخدم KConfig لتخزين إعداداتها. |
| KCoreAddons | 1 | kcoreaddons.git | أدوات مساعدة لوظائف التطبيق الأساسية والوصول إلى نظام التشغيل. مكتبة إضافات Qt تضم مجموعة من الأدوات المساعدة غير الرسومية. توفر KCoreAddons فئات مبنية على QtCore لأداء مهام متنوعة مثل معالجة أنواع MIME، والحفظ التلقائي للملفات، وإنشاء ملفات النسخ الاحتياطي، وتوليد تسلسلات عشوائية، وإجراء عمليات معالجة النصوص مثل استبدال وحدات الماكرو، والوصول إلى معلومات المستخدم، وغير ذلك الكثير. |
| KCrash | 2 | kcrash.git | يوفر الدعم لاعتراض ومعالجة أعطال التطبيقات. |
| إضافات KDBus | 1 | kdbusaddons.git | توفر KDBusAddons فئات DBus ملائمة فوق QtDBus، بالإضافة إلى واجهة برمجة تطبيقات لإنشاء وحدات KDED. |
| KDeclarative | 3 | kdeclarative.git | إضافة لـ Qt التصريحي |
| KDED | 3 | kded.git | KDED اختصار لـ KDE Daemon، وهو البرنامج الرئيسي في بيئات عمل KDE. يعمل KDED في الخلفية ويؤدي عددًا من المهام الصغيرة، بعضها مُدمج في النظام، والبعض الآخر يُشغّل عند الحاجة. |
| KDesignerPlugin | 3 | kdesignerplugin.git | يوفر هذا الإطار مكونات إضافية لـ Qt Designer تسمح له بعرض الأدوات التي توفرها أطر عمل KDE المختلفة، بالإضافة إلى أداة مساعدة (kgendesignerplugin) يمكن استخدامها لإنشاء مكونات إضافية أخرى من ملفات وصف بنمط ini. |
| KDESu | 3 | kdesu.git | يوفر KDESU (المستخدم المتميز في KDE) واجهة مستخدم لتشغيل أوامر النظام بصلاحيات الجذر. كما يوفر وظائف لإنشاء واجهات رسومية أمامية لبرامج وضع سطر الأوامر (التي تطلب كلمة مرور). على سبيل المثال، يستخدمه كل من kdesu وkdessh للتفاعل مع su و ssh على التوالي. |
| KDEWebkit | 3 | kdewebkit.git | تكامل محرك عرض HTML، WebKit . توفر مكتبة KDEWebkit تكاملاً مع مكتبة QtWebKit في بيئة KDE. إذا كنت تستخدم QtWebKit في تطبيق KDE الخاص بك، فننصحك باستخدام هذه الطبقة بدلاً من استخدام فئات QtWebKit مباشرةً. على وجه الخصوص، يجب عليك استخدام KWebView بدلاً من QWebView، وKGraphicsWebView بدلاً من QGraphicsWebView، وKWebPage بدلاً من QWebPage. |
| إطار عمل KDNSSDFramework | 2 | kdnssd.git | KDNSSD هي مكتبة للتعامل مع بروتوكول اكتشاف الخدمة القائم على نظام أسماء النطاقات ( DNS - SD )، وهي طبقة [Zeroconf] ( www.zeroconf.org ) |
| KDocTools | 2 | kdoctools.git | يوفر أدوات لإنشاء وثائق بتنسيقات مختلفة من ملفات DocBook. |
| رموز تعبيرية | 3 | kemoticons.git | يوفر سمات للرموز التعبيرية بالإضافة إلى فئات مساعدة لتحويل الرموز التعبيرية النصية إلى رموز تعبيرية رسومية تلقائيًا. |
| KGlobalAccel | 1 | kglobalaccel.git | تتيح لك KGlobalAccel استخدام اختصارات لوحة المفاتيح العامة (المُسرّعات) التي لا تعتمد على النافذة المُركّز عليها. على عكس الاختصارات العادية، لا تحتاج نافذة التطبيق إلى التركيز لتفعيلها. |
| إضافات KGui | 1 | kguiaddons.git | إضافات واجهة المستخدم الرسومية KDE؛ أدوات مساعدة لواجهات المستخدم الرسومية؛ توفر إضافات واجهة المستخدم الرسومية KDE أدوات مساعدة لواجهات المستخدم الرسومية في مجالات الألوان والخطوط والنصوص والصور وإدخال لوحة المفاتيح. |
| KHTML | 4 | khtml.git | KHTML هو محرك عرض HTML الذي انبثق منه WebKit. وهو يعتمد على تقنية KParts ويستخدم KJS لدعم JavaScript. |
| Ki18n | 1 | ki18n.git | تدويل نصوص واجهة المستخدم في تطبيقات KDE باستخدام Gettext. يوفر KI18n وظائف لتدويل نصوص واجهة المستخدم في التطبيقات، بالاعتماد على نظام الترجمة GNU Gettext . وهو يغلف وظائف Gettext القياسية، مما يتيح للمبرمجين والمترجمين استخدام أدوات Gettext المألوفة وسير العمل الخاص بها. كما يوفر KI18n وظائف إضافية، لكل من المبرمجين والمترجمين، تُسهم في تحسين جودة النص الأصلي والمترجم. ويشمل ذلك التقاط الوسائط، وعلامات قابلة للتخصيص، وكتابة نصوص الترجمة. |
| KIconThemes | 3 | kiconthemes.git | تحتوي هذه المكتبة على فئات لتحسين التعامل مع الأيقونات في التطبيقات التي تستخدم أطر عمل KDE. |
| وقت الخمول | 1 | kidletime.git | وحدة تكامل لاكتشاف وقت الخمول. |
| تنسيقات الصور K | 1 | kimageformats.git | إضافات تُمكّن QImage من دعم تنسيقات ملفات إضافية. يوفر هذا الإطار إضافات لتنسيقات الصور لـ QtGui. لذا، فهو غير مطلوب لتجميع أي برنامج آخر، ولكنه قد يكون شرطًا أساسيًا لتشغيل برامج Qt لدعم تنسيقات صور معينة. تنسيقات الصور التالية تدعم القراءة فقط:
تدعم تنسيقات الصور التالية القراءة والكتابة:
|
| كينيت | 3 | kinit.git | kdeinit هو مُشغّل عمليات، يقوم بتشغيل العمليات عن طريق إنشاء نسخة منها ثم تحميل مكتبة ديناميكية تحتوي على دالة 'kdemain(...)'. يُسرّع kdeinit بدء تشغيل التطبيقات في بيئات عمل KDE؛ حيث يرتبط بجميع المكتبات التي يحتاجها تطبيق KDE القياسي. بهذه التقنية، يصبح بدء تشغيل التطبيق أسرع بكثير، لأنه الآن لا يلزم سوى ربط التطبيق نفسه، بينما في السابق كان يلزم ربط التطبيق وجميع المكتبات التي يستخدمها. |
| كيو | 3 | kio.git | يُتيح هذا الإطار الوصول الشفاف إلى الملفات والبيانات عبر الشبكة. كما يُطبّق جميع وظائف إدارة الملفات التي قد تحتاجها تقريبًا. ويستخدم كلٌّ من برنامج Dolphin وواجهة إدارة الملفات في KDE هذا الإطار لتوفير إدارة الملفات عبر الشبكة. |
| كيريغامي | 1 | kirigami.git | مجموعة من إضافات QtQuick لبناء واجهات مستخدم تستند إلى إرشادات تجربة المستخدم الخاصة بـ KDE |
| نماذج العناصر | 1 | kitemmodels.git | مجموعة من نماذج العناصر التي تُوسّع إطار عمل Qt لعرض النماذج. توفر KItemModels النماذج التالية:
|
| عرض العناصر | 1 | kitemviews.git | مجموعة من طرق عرض العناصر التي تُوسّع إطار عمل Qt لعرض النماذج. تتضمن KItemViews مجموعة من طرق العرض التي يمكن استخدامها مع نماذج العناصر. وتشمل طرق عرض لتصنيف القوائم وإضافة عوامل تصفية البحث إلى القوائم المسطحة والهرمية. |
| KJobWidgets | 2 | kjobwidgets.git | توفر KJobWIdgets أدوات لعرض تقدم المهام غير المتزامنة. |
| KJS | 1 | kjs.git | توفر KJS مترجمًا متوافقًا مع ECMAScript. يعتمد معيار ECMA على لغات برمجة نصية معروفة مثل JavaScript من Netscape وJScript من Microsoft. |
| KJSEmbed | 3 | kjsembed.git | توفر KSJEmbed طريقة لربط كائنات JavaScript بـ QObjects، بحيث يمكنك برمجة تطبيقاتك. |
| مشغل الوسائط KMediaPlayer | 3 | kmediaplayer.git | مُهمل : واجهة لأجزاء مشغل الوسائط KParts. يعتمد KMediaPlayer على إطار عمل KParts لتوفير واجهة مشتركة لأجزاء KParts التي يمكنها تشغيل ملفات الوسائط. يُعد هذا الإطار أداة مساعدة في عملية النقل. لا يُنصح باستخدامه في المشاريع الجديدة، ويُنصح المشاريع الحالية التي تستخدمه بالانتقال منه واستخدام أجزاء KParts العادية بدلاً منه. |
| أشياء جديدة | 3 | knewstuff.git | إطار عمل لتنزيل ومشاركة بيانات إضافية للتطبيقات. تُنفّذ مكتبة KNewStuff مشاركة البيانات التعاونية للتطبيقات، وتستخدم مكتبة libattica لدعم مواصفات خدمات التعاون المفتوح. Attica هي مكتبة Qt تقوم بتنفيذ واجهة برمجة تطبيقات خدمات التعاون المفتوحة الإصدار 1.6. وهي تتيح الوصول السهل إلى الخدمات مثل الاستعلام عن المعلومات المتعلقة بالأشخاص والمحتويات. |
| إشعارات K | 3 | knotifications.git | حل مع تجريد لإشعارات النظام. |
| KNotifyConfig | 3 | knotifyconfig.git | وحدة لتكوين KNotify. |
| قطع غيار كيه بارتس | 3 | kparts.git | تُنفّذ مكتبة KParts إطار عمل أجزاء KDE. يُطلق على كل مُكوّن من مُكوّنات واجهة المستخدم اسم KPart ، وهو عبارة عن أداة مُفصّلة ذات واجهة مستخدم مُعرّفة من حيث الإجراءات (عناصر القائمة، أيقونات شريط الأدوات). تُشابه KParts مُكوّنات Bonobo في GNOME وعناصر تحكم ActiveX في نموذج كائنات المُكوّنات من Microsoft . يتوفر Konsole كـ KPart ويُستخدم في تطبيقات مثل Konqueror و Kate . أمثلة على استخدامات KParts:
وثائق إضافية:
|
| رسم بياني K | 1 | kplotting.git | KPlotWidget هي فئة مشتقة من QWidget توفر فئة أساسية افتراضية لتسهيل رسم البيانات. الفكرة وراء KPlotWidget هي أنك تحتاج فقط إلى لتحديد المعلومات بوحدات البيانات، أي الوحدات الطبيعية للبيانات المراد رسمها، يقوم KPlotWidget بتحويل جميع البيانات تلقائيًا إلى وحدات بكسل الشاشة. يرسم KPlotWidget المحورين X وY مع علامات التجزئة وتسمياتها. ويحدد تلقائيًا عدد علامات التجزئة ومواقعها بناءً على حدود البيانات المحددة للرسم. يمكنك تغيير هذه الحدود باستدعاء الدالة `setLimits(double x1, double x2, double y1, double y2)`. تُخزن البيانات المراد رسمها باستخدام فئة KPlotObject. تتكون KPlotObject من قائمة QList تحتوي على نقاط QPointF، حيث تحدد كل نقطة إحداثيات X وY لنقطة بيانات. كما تحدد KPlotObject نوع البيانات المراد رسمها (نقاط، أو منحنى، أو مضلع، أو تسمية). |
| كي بي تي واي | 2 | kpty.git | التفاعل مع أجهزة الطرفية الوهمية . توفر هذه المكتبة أدوات أساسية للتفاعل مع أجهزة الطرفية الوهمية، بالإضافة إلى فئة مشتقة من KProcess لتشغيل العمليات الفرعية والتواصل معها باستخدام pty. |
| كروس | 3 | kross.git | دمج البرمجة النصية في التطبيقات. Kross عبارة عن جسر برمجي لدمج وظائف البرمجة النصية في التطبيق. وهو يدعم QtScript كواجهة خلفية لمفسر البرمجة النصية. يوفر جوهر Kross الإطار اللازم للتعامل بشفافية مع الواجهات الخلفية للمترجمات ويقدم وظائف مجردة للتعامل مع البرامج النصية. |
| KRunner | 3 | krunner.git | إطار عمل لتوفير إجراءات متنوعة بناءً على استعلام نصي. إطار عمل لمشغلات بلازما. توفر بيئة عمل بلازما تطبيقًا يُسمى KRunner، والذي يسمح، من بين أمور أخرى، بالكتابة في حقل نصي، مما يؤدي إلى ظهور إجراءات ومعلومات مختلفة تتناسب مع النص أثناء الكتابة. أحد تطبيقات هذا الإطار هو المشغل الشامل الذي يمكنك تشغيله باستخدام علامة ALT+F2 . |
| كي سيرفيس | 3 | kservice.git | توفر KService إطار عمل إضافي لإدارة خدمات سطح المكتب. يمكن أن تكون الخدمات تطبيقات أو مكتبات. ويمكن ربطها بأنواع MIME أو معالجتها بواسطة كود خاص بالتطبيق. |
| KSyntaxHighlighting | 1 | syntax-highlighting.git | هذا تطبيق مستقل لمحرك تمييز الصيغة Kate. وهو مصمم ليكون لبنة أساسية لمحررات النصوص، بالإضافة إلى كونه أداة لعرض النصوص المميزة البسيطة (مثل HTML)، ويدعم التكامل مع محرر مخصص، بالإضافة إلى فئة فرعية جاهزة للاستخدام من QSyntaxHighlighter. |
| محرر النصوص K | 3 | ktexteditor.git | يوفر KTextEditor مكونًا قويًا لتحرير النصوص يمكنك تضمينه في تطبيقك، إما كجزء KPart أو باستخدام مكتبة KF5::TextEditor (إذا كنت بحاجة إلى مزيد من التحكم). يحتوي مكون محرر النصوص على العديد من الميزات المفيدة، بدءًا من تمييز بناء الجملة والمسافة البادئة التلقائية وصولًا إلى دعم البرمجة النصية المتقدمة، مما يجعله مناسبًا لكل شيء بدءًا من محرر ملفات نصية بسيط مضمن وصولًا إلى بيئة تطوير متكاملة متقدمة. |
| KTextWidgets | 3 | ktextwidgets.git | توفر مكتبة KTextWidgets أدوات لعرض النصوص وتحريرها. وهي تدعم النصوص المنسقة والنصوص العادية. |
| تحويل وحدة KUnit | 2 | kunitconversion.git | توفر مكتبة KUnitConversion وظائف لتحويل القيم بين وحدات القياس الفيزيائية المختلفة. وهي تدعم تحويل البادئات المختلفة (مثل كيلو، ميجا، جيجا) بالإضافة إلى التحويل بين أنظمة الوحدات المختلفة (مثل لتر، جالون). وتشمل المجالات المدعومة ما يلي:
|
| إطار عمل محفظة K | 3 | kwallet.git | تخزين آمن لكلمات المرور على مستوى سطح المكتب. يتضمن هذا الإطار مكونين رئيسيين:
|
| كي وايلاند | 1 | kwayland.git | KWayland هي مكتبة KDE لتفعيل دعم Wayland في تطبيقات KDE، وهي تلبي احتياجات تتجاوز ما توفره QtWayland . تستخدم جميع تطبيقات KDE في جلسة plasma-wayland هذه المكتبة، وربما LXQt أيضًا. أصبحت KWayland جزءًا من KDE Frameworks منذ الإصدار 5.22 (مايو 2016)؛ وكانت تُوزع سابقًا كجزء من KDE Plasma 5. |
| إضافات KWidgets | 1 | kwidgetsaddons.git | إضافةٌ تتضمن فئاتٍ متنوعةً مبنيةً على QtWidgets. إذا كنتَ تنقل تطبيقاتٍ من مكتبة "kdeui" الخاصة بمنصة KDE 4، فستجد العديد من فئاتها هنا. تتضمن هذه الإضافة فئات إجراءاتٍ يُمكن إضافتها إلى أشرطة الأدوات أو القوائم، ومجموعةً واسعةً من الأدوات لاختيار الأحرف والخطوط والألوان والإجراءات والتواريخ والأوقات وأنواع MIME، بالإضافة إلى مربعات حوارٍ مُتوافقةٍ مع المنصة لصفحات التكوين وصناديق الرسائل وطلبات كلمات المرور. يُمكن العثور على المزيد من الأدوات والفئات في أُطر عمل KDE الأخرى. |
| نظام النوافذ K | 1 | kwindowsystem.git | يُتيح هذا النظام التفاعل مع نظام النوافذ . فهو يُوفّر NETRootInfo للوصول إلى الحالة العامة (جميع الإعدادات المُطبقة على النافذة الجذرية)، وNETWinInfo للحصول على جميع المعلومات المتعلقة بنافذة مُحددة. تُقدّم هذه الفئات منظورًا خاصًا بمدير النوافذ ومنظورًا خاصًا بالعميل. هذا هو الأساس الذي يُشغّل KWin وأجزاءً مُختلفة من واجهة المستخدم الرسومية، مثل مدير المهام. [ 17 ] إضافةً إلى هذه الفئات الخاصة بـ X11، لدينا واجهة برمجة تطبيقات مُريحة KWindowInfo وKWindowSystem، والتي تُوفّر واجهة برمجة تطبيقات مُستقلة عن نظام النوافذ لتطبيقاتنا. |
| KXMLGUI | 3 | kxmlgui.git | توفر KXMLGUI إطار عمل لإدارة إجراءات القوائم وأشرطة الأدوات بطريقة مجردة. يتم تكوين الإجراءات من خلال وصف XML ووظائف ربط في كود التطبيق. يدعم إطار العمل دمج أوصاف متعددة، على سبيل المثال لدمج الإجراءات من المكونات الإضافية. تستخدم KXMLGUI وظيفة ترخيص Kiosk الخاصة بـ KConfig (راجع مساحة اسم KAuthorized في إطار العمل هذا). والجدير بالذكر أنه يتم تعطيل مثيلات QAction المضافة إلى KActionCollection إذا أبلغت KAuthorized::authorizeAction() أنها غير مصرح بها. وبالمثل، يمكن تعطيل العناصر الموجودة في قائمة المساعدة القياسية (KHelpMenu) بناءً على إعدادات Kiosk، ويمكن تقييد تحرير شريط الأدوات. راجع وثائق KActionCollection وKHelpMenu وKToolBar لمزيد من المعلومات. |
| إطار عمل البلازما | 3 | plasma-framework.git | المكتبات الأساسية ومكونات وقت التشغيل وأدوات مساحات عمل KDE Plasma المبنية على KF5 وQt5. يوفر إطار عمل Plasma ما يلي:
|
| سجن | 1 | prison.git | Prison عبارة عن طبقة/مكتبة تجريد للرموز الشريطية تعتمد على Qt وتوفر وصولاً موحداً لإنشاء الرموز الشريطية مع البيانات. |
| صلب | 1 | solid.git | توفر Solid طريقة للاستعلام عن الأجهزة والتفاعل معها بشكل مستقل عن نظام التشغيل الأساسي. وهي توفر الميزات التالية لمطوري التطبيقات:
|
| سونيت | 1 | sonnet.git | Sonnet مكتبة تدقيق إملائي تعتمد على الإضافات لتطبيقات Qt. تدعم المكتبة العديد من الإضافات المختلفة، بما في ذلك HSpell وEnchant وASpell وHUNSPELL. كما تدعم الكشف التلقائي عن اللغة، بالاعتماد على مزيج من الخوارزميات المختلفة. أسهل طريقة لاستخدام Sonnet في تطبيقك هي استخدام فئة SpellCheckDecorator في عنصر QTextEdit. |
| التوزيع | 2 | syndication.git | Syndication هي مكتبة لتحليل RSS/Atom. |
| نساج الخيوط | 1 | threadweaver.git | ThreadWeaver عبارة عن قائمة انتظار للمهام. يقوم بتنفيذ المهام في سلاسل عمليات يديرها داخليًا. |
كيريغامي
Kirigami هو إطار عمل لتطبيقات QML [ 18 ] تم تطويره بواسطة ماركو مارتن [ 19 ] والذي يمكّن المطورين من كتابة تطبيقات تعمل بشكل أصلي على Android و iOS و Windows و Plasma Mobile وأي بيئة سطح مكتب Linux كلاسيكية دون تعديلات على التعليمات البرمجية.
يتم استخدامه بواسطة تطبيقات مختلفة، على سبيل المثال تطبيق الغوص Subsurface الخاص بـ Linus Torvalds و Dirk Hohndels، وبرنامج المراسلة Banji، [ 20 ] وبرنامج المراسلة Kaidan، [ 21 ] ومشغل الموسيقى Vvave ومركز برامج KDE Discover.
حزم البرامج
تستخدم توزيعات لينكس نظام إدارة حزم لتغليف البرامج التي توزعها. على سبيل المثال، توزع دبيان برنامج KGlobalAccel تحت اسم الحزمة libkf5globalaccel ، [ 22 ] بينما توزعه فيدورا لينكس تحت اسم kf5-kglobalaccel . [ 23 ]
روابط
على الرغم من أن البرنامج مكتوب بشكل أساسي بلغة C++، إلا أن هناك روابط متاحة للغات برمجة أخرى:
تستخدم هذه الروابط وغيرها التقنيات التالية:
تاريخ
سبق إصدار النسخة 5.0 معاينة تقنية، وإصداران تجريبيان (ألفا)، وثلاثة إصدارات تجريبية (بيتا). [ 24 ] [ 25 ] [ 26 ]
كان الكود المصدري لإطارات عمل KDE موجودًا منذ KDElibs 1. وكان الإصدار الأول باسم KDE Frameworks هو الإصدار 5، وذلك لمراعاة حقيقة أن قاعدة الكود كانت هي قاعدة كود KDE Platform الإصدار 4 (الإصدار الرئيسي الوحيد من KDE Platform ).
بدأ الانتقال من منصة KDE إلى أطر عمل KDE في أغسطس 2013، بتوجيه من كبار المساهمين التقنيين في KDE. [ 8 ]
بعد الإصدار الأولي لإطار عمل KDE 5.0، ركز المطورون على إضافة ميزات جديدة إلى مكونات إطار عمل KDE 5، [ 27 ] ومن الأمثلة على ذلك تحسين تكامل متصفح Firefox مع KDE. [ 28 ]
يتمثل التحسين الرئيسي في Frameworks 5 في تصميمه المعياري. ففي الإصدارات السابقة من KDE، كانت المكتبات تُجمع في حزمة واحدة كبيرة. أما في Frameworks، فقد تم تقسيم المكتبات إلى حزم أصغر منفصلة. وهذا يُسهّل استخدام المكتبات من قِبل برامج أخرى تعتمد على Qt، حيث يُمكن تقليل التبعيات إلى الحد الأدنى. [ 8 ]
بينما كان KDE 4 يعتمد على الإصدار 4 من مجموعة أدوات Qt widget، فإن Frameworks 5 يعتمد على الإصدار 5.
كجزء من "الإصدار الضخم 6" لمشروع KDE، تم إصدار KDE Frameworks 6 في 28 فبراير 2024، مما أدى إلى ترقيته إلى قاعدة Qt 6. [ 29 ]
تحويل KDE4
خلال إصدار KDE SC 4، كانت منصة KDE آنذاك تتألف من جميع المكتبات والخدمات اللازمة لبيئة KDE Plasma وتطبيقاتها. بدءًا من Qt 5، تحولت هذه المنصة إلى مجموعة من الوحدات النمطية التي تُعرف الآن باسم أطر عمل KDE. تشمل هذه الوحدات النمطية: Solid و Nepomuk و Phonon ، وغيرها، وهي مرخصة بموجب تراخيص LGPL أو BSD أو MIT أو X11. [ 30 ]
التبني
إلى جانب مجموعة برامج KDE ، هناك برامج أخرى اعتمدتها مثل بيئات سطح المكتب LXQt و MoonLightDE و Hawaii.
يعتمد الإصدار 3.0 من Krita ، محرر الرسومات النقطية الخاص بمجموعة Calligra ، والذي تم إصداره في 31 مايو 2016، على KDE Frameworks 5 و Qt 5.2.
مع تقنية كيريغامي، هناك أيضًا زيادة في الاستخدام من قبل تطبيقات مثل أماروك ، أفوجادرو ، تروجيتا أو سابسيرفس .
مراجع
- ↑ "KDE Ships Frameworks 6.28.0" . 10 يوليو 2026. تم الاطلاع عليه بتاريخ 14 يوليو 2026 .
- ↑ "إصدار إطار عمل KDE 5.24.0" . 9 يوليو 2016. مؤرشف من الأصل في 11 يوليو 2016. تم الاطلاع عليه في 10 يوليو 2016 .
- ↑ "أندرويد - ويكي مجتمع KDE" . مؤرشف من الأصل بتاريخ 26-08-2016 . تم الاطلاع عليه بتاريخ 11-07-2016 .
- ↑ "الصفحة الرئيسية لواجهة برمجة تطبيقات KDE" . مؤرشفة من الأصل بتاريخ 26-08-2016 . تم الاطلاع عليها بتاريخ 11-07-2016 .
- ↑ "الإصدار الأول من KDE Frameworks 5" . 2014-07-07. مؤرشف من الأصل في 2015-09-05 . تم الاطلاع عليه في 2014-07-08 .
- ↑ "أطر عمل KDE" . وثائق واجهة برمجة التطبيقات . مؤرشف من الأصل بتاريخ 7 ديسمبر 2019. تم الاطلاع عليه بتاريخ 17 مارس 2020 .
- ↑ "أطر عمل KDE" . قاعدة التقنية . مؤرشف من الأصل بتاريخ 13 أغسطس 2020. تم الاطلاع عليه بتاريخ 17 مارس 2020 .
- ١ ٢ ٣ هوارد تشان (٢٠١٣-٠٩-٠٤). "تطور هيكل إصدار KDE" . KDE. مؤرشف من الأصل في ٢٠٢٠-١١-١٢ . تم الاسترجاع في ٢٠١٤-٠٢-٢٧ .
- ↑ "جدول إصدار KDE Frameworks 5" . مؤرشف من الأصل بتاريخ 24-06-2016 . تم الاطلاع عليه بتاريخ 18-05-2016 .
- ↑ "سير عمل Git للأطر البرمجية" . مؤرشف من الأصل بتاريخ 2020-10-20 . تم الاطلاع عليه بتاريخ 2014-08-19 .
- ↑ "وثائق واجهة برمجة تطبيقات KDE Frameworks5" . مؤرشفة من الأصل بتاريخ 22-08-2014.
- ↑ "إمكانية التثبيت المشترك مع منصة KDE 4" . مؤرشف من الأصل بتاريخ 2020-12-01 . تم الاطلاع عليه بتاريخ 2014-08-19 .
- ↑ "metainfo.yaml of KConfig" .
- ↑ جوس بورتفليت (17 ديسمبر 2013). "Qt 5.2 - أساس إطار عمل KDE 5" . Dot.kde.org. مؤرشف من الأصل بتاريخ 11 نوفمبر 2020. تم الاطلاع عليه بتاريخ 10 مارس 2014 .
- ↑ هوارد تشان (25 سبتمبر 2013). "Frameworks 5" . Dot.kde.org. مؤرشف من الأصل بتاريخ 26 نوفمبر 2020. تم الاطلاع عليه بتاريخ 10 مارس 2014 .
- ↑ "وثائق واجهة برمجة التطبيقات" . api.kde.org . مؤرشف من الأصل بتاريخ 2021-10-02 . تم الاطلاع عليه بتاريخ 2021-10-02 .
- ↑ "KWindowSystem في Frameworks 5" . 6 فبراير 2014. مؤرشف من الأصل في 28 يوليو 2014. تم الاطلاع عليه في 25 يوليو 2014 .
- ^ "كيدي كيريجامي" . كيدي. أرشفة من الإصدار الأصلي في 29 تموز 2019 . تم الاسترجاع في 25 نوفمبر 2018 .
- ↑ "المساهمون في KDE/Kirigami" . GitHub . مؤرشف من الأصل بتاريخ 30 أبريل 2019. تم الاطلاع عليه بتاريخ 8 أغسطس 2021 .
- ↑ مؤرشف في Ghostarchiveوآلة Wayback" Banji (Ring-KDE) واجهة جديدة لأنظمة لينكس وأندرويد المكتبية" . يوتيوب . مارس 2019.
- ↑ "Kaidan - عميل XMPP سهل الاستخدام لجميع الأجهزة!" . GitHub . 4 يوليو 2021. مؤرشف من الأصل في 26 أبريل 2019. تم الاطلاع عليه في 8 أغسطس 2021 .
- ↑ "KGlobalAccel في دبيان" . مؤرشف من الأصل بتاريخ 20-09-2016 . تم الاطلاع عليه بتاريخ 11-09-2016 .
- ↑ "KGlobalAccel في فيدورا" .
- ↑ "معاينة تقنية لإطار العمل 5" . كي دي إي. 7 يناير 2014. مؤرشف من الأصل في 26 فبراير 2014. تم الاطلاع عليه في 27 فبراير 2014 .
- ↑ "كيه دي إي تُصدر أول نسخة تجريبية من إطار العمل 5" . كيه دي إي. 14 فبراير 2014. مؤرشف من الأصل في 1 مارس 2014. تم الاطلاع عليه في 27 فبراير 2014 .
- ↑ "كيه دي إي تُصدر الإصدار التجريبي الثاني من إطار العمل 5" . كيه دي إي. 3 مارس 2014. مؤرشف من الأصل في 9 مارس 2014. تم الاطلاع عليه في 4 مارس 2014 .
- ↑ "محضر اجتماع تحديث KF5، الأسبوع 28، 2014" . 8 يوليو 2014. مؤرشف من الأصل بتاريخ 7 مارس 2016. تم الاطلاع عليه بتاريخ 10 يوليو 2014 .
- ↑ "تكامل فايرفوكس مع كيدي: جعل فايرفوكس يستخدم دولفين بشكل موثوق" . 2014-07-03. مؤرشف من الأصل في 2018-05-15 . تم الاطلاع عليه في 2014-07-10 .
- ^ "إعلان KDE MegaRelease 6" . 2024-02-28 . تم الاسترجاع 2024-03-20 .
- ↑ "سياسة ترخيص KDE" . مؤرشفة من الأصل بتاريخ 16-12-2010 . تم الاطلاع عليها بتاريخ 06-11-2010 .
روابط خارجية
- إطار عمل KDE
- واجهات برمجة التطبيقات
- مكتبات C++
- منصات الحوسبة
- مكتبات حاسوب مجانية
- برنامج KDE
- برنامج يستخدم رخصة جنو العمومية الصغرى
- برامج متعلقة بنظام النوافذ في يونكس
- وايلاند (بروتوكول خادم العرض)
- مكتبات قائمة على X
