KDDockWidgets ، إطار تنفيذ متقدم لـ QDockWidget

KDQDockWidget

مجموعة KDAB هي شركة استشارات برمجية لتطبيقات Qt و C++ و OpenGL لمنصات مختلفة (سطح المكتب، والأنظمة المدمجة، والهواتف المحمولة)، بالإضافة إلى تقديم دروس خصوصية لتطوير تطبيقات Qt من الصفر وفي ترحيل جميع الأطر الشائعة إلى Qt.

على مر السنين، ساهمت KDAB في تطوير QDockWidget وموّلته . ومع ذلك، نظرًا لأن التغييرات وإصلاحات الأخطاء استغرقت أيامًا عديدة للتنفيذ، فقد ثبت أن استخدام QDockWidget خيار غير مناسب، مما أدى إلى إنشاء KDDockWidgets.

KDDockWidgets هو إطار عمل متقدم للالتحام لـ QDockWidgets ، والذي يوسع نطاق استخدامه من خلال إضافة ميزات غير مدعومة بواسطة QDockWidgets.

تجمع مكتبة QdockWidget بشكل أساسي بين كود واجهة المستخدم الرسومية ومنطق الحالة، مما يجعل إضافة ميزات جديدة أمرًا بالغ الصعوبة، ويؤدي إلى تعقيد كبير في التنفيذ عبر مختلف المنصات. وباعتبارها مكونًا أساسيًا في العديد من واجهات المستخدم الرسومية، فإنها تتيح لك نقل عناصر النافذة بأكملها (أشرطة الأدوات، ومجموعات الأدوات، وما إلى ذلك) إلى أي مكان تريده.

ومع ذلك، جادلت شركة KDAB بأن صيانة كود QDockWidgets ليست بالأمر السهل، مشيرة إلى ما يلي:

ولدت KDDockWidgets من حاجتي للحفاظ على سلامة عقلي بعد أن عملت في مشروعين يتطلبان تخصيصًا واسعًا. واحد حيث حاولنا العمل مباشرة في المنبع ولكن معدل الانحدار انتهى به الأمر كثيرًا.

وواحد آخر حيث سلكت طريق استخدام واجهات برمجة التطبيقات الخاصة ، وأحداث الماوس المزيفة ، وفلاتر الأحداث ، والتي بدت فكرة جيدة في البداية ، لكن انتهى بي الأمر إلى عالم مليء بالألم. أيضًا ، أصبح عملاؤنا أكثر إبداعًا في طلباتهم ، لذلك كان من الواضح أننا بحاجة إلى إطار عمل أفضل لرسو السفن.

تكمن المشكلة الرئيسية في تصميمه ، فهو متجانس إلى حد كبير ولكنه قابل للتخصيص (يمكننا اختيار الوظائف المتاحة للمستخدم، حتى لو كان عدد قليل من الأشخاص يستخدمونها، للرسوم المتحركة)، مع وجود شيفرة برمجية معقدة (تخلط بسلاسة بين المنطق وحالة المكونات). لذلك، يمكن لأي تغيير أن يُحدث عددًا كبيرًا من المشاكل.

ولهذا السبب قررت KDAB إنشاء KDDockWidgets ، والتي تهدف إلى تبسيط تصميم QDockWidgets بشكل كبير، مع تسهيل تكييفها مع مواقف معينة.

يوفر KDDockWidgets الوظائف التالية:

  • أن تكون قادرًا على إرساء الأدوات في نافذة عائمة وإرساء تلك المجموعة في النافذة الرئيسية
  • ثبت في أي نافذة ، وليس فقط النافذة الرئيسية
  • الإرساء في وسط النافذة الرئيسية
  • دعم لعلامات التبويب القابلة للفصل في الأداة المركزية داخل النافذة الرئيسية
  • القدرة على فصل علامات التبويب من شريط علامات التبويب في منطقة الإرساء
  • القدرة على الجمع بين عدة علامات تبويب من خلال الجمع بين مختلف المكونات.
  • كشف أدوات المساعدة الداخلية بحيث يمكن للمستخدم تخصيصها أو توفير أدواتها الخاصة.
  • يمكن لمجموعات المكونات التبديل بحرية من نافذة خارجية (تحتوي فقط على مجموعة المكونات هذه) إلى النافذة الرئيسية (وهي ميزة مطبقة جزئيًا في Qt 5.10).
  • تخصيص الحاجيات علامة التبويب
  • تخصيص أشرطة العنوان
  • تخصيص إطارات النوافذ
  • بالإضافة إلى إبراز أن التغيير الرئيسي هو إضافة مؤشرات دقيقة لإزالة العناصر من واجهة المستخدم الرسومية ، بالإضافة إلى حقيقة أن فكرة الأداة المركزية تختفي ، حيث إنها لم تعد عنصرًا محددًا.

يفصل التنظيم الجديد بوضوح بين منطق البرنامج وواجهة المستخدم الرسومية ، مما يتيح إعادة استخدام محرك التشغيل الأساسي بسهولة لواجهات Qt Quick (وهو أمر متوقع في نهاية المطاف). كما يُسهّل تخصيص الواجهة؛ إذ يمكن للمستخدمين إضافة عناصر واجهة مستخدم خاصة بهم لأي جزء منها.

علاوة على ذلك، صُممت KDDockWidgets لتكون إطار عمل، مما يتيح لك بسهولة تعديل واجهاتها لتوفير سلوك ومظهر مخصصين. KDDockWidgets إطار عمل مفتوح المصدر، مرخص بموجب رخصتي GPLv2 وGPLv3.

يتوفر كود KDDockWidgets، بالإضافة إلى عرض توضيحي له، على الرابط التالي.


أضف كمصدر مفضل في جوجل