KDDockWidgets ، یک چارچوب پیاده سازی پیشرفته برای QDockWidget

KDQDockWidget

گروه KDAB یک مشاوره نرم افزاری برای برنامه های Qt ، C ++ و OpenGL است برای سیستم عامل های مختلف (دسک تاپ ، تعبیه شده و تلفن همراه) ، علاوه بر این تدریس خصوصی برای توسعه برنامه های Qt از ابتدا ارائه می دهد و در انتقال تمام فریم های محبوب به Qt.

در طول سالها KDAB در توسعه QDockWidget همکاری و کمک مالی کرده است. اما از آنجا که پیاده سازی تغییرات و رفع اشکالات روزهای زیادی به طول انجامید ، با استفاده از QdockWidget ، معلوم شد که گزینه خوبی نیست ، بنابراین KDDockWidgets تولد می یابد.

KDDockWidgets است یک چارچوب اتصال پیشرفته برای QDockWidgets، که با استفاده از آن کاربردهای خود را با اضافه کردن توابع که QDockWidgets پشتیبانی نمی کنند ، گسترش می دهد.

QdockWidget بطور محلی کد GUI را با منطق و حالت ترکیب می کند ، مانند حرکت به جلو با ویژگی های جدید را بسیار دشوار می کند ، که باعث پیچیدگی زیادی در اجرای آن در سیستم عامل های مختلف می شود. از آنجا که این یک جز basic اساسی از یک سری رابط های گرافیکی کاربر است ، با استفاده از آن می توانید کل عناصر پنجره (نوار ابزار ، گروه های ابزارک و غیره) را به هر کجا که می خواهید منتقل کنید.

با این حال، KDAB استدلال کرد که نگهداری کد QDockWidgets بسیار آسان نیست ، همانطور که اظهار نظر می کند:

KDDockWidgets پس از کار روی دو پروژه که نیاز به سفارشی سازی گسترده داشت ، به دلیل نیاز من به حفظ سلامت عقل من متولد شد. جایی که ما سعی کردیم مستقیماً در بالادست کار کنیم اما در نهایت میزان رگرسیون خیلی زیاد بود.

و دیگری که در آن من مسیر استفاده از API های خصوصی ، حوادث ساختگی ماوس و فیلترهای رویداد را در پیش گرفتم که در ابتدا ایده خوبی به نظر می رسید ، اما در نهایت به عنوان یک دنیای درد شناخته شد. همچنین ، مشتریان ما با درخواست های خود خلاقیت بیشتری نشان می دادند ، بنابراین واضح بود که ما به یک چارچوب اتصال بهتر نیاز داریم.

مشکل اصلی طراحی آن است، کاملاً یکپارچه اما با قابلیت تنظیم (ما می توانیم توابع در دسترس کاربر را انتخاب کنیم ، حتی اگر افراد کمی این کار را انجام دهند ، برای انیمیشن ها) ، با کد اسپاگتی (با خوشحالی منطق و حالت جز component را مخلوط می کنیم). بنابراین ، هر تغییری می تواند تعداد زیادی از قهقرا ایجاد کند.

به همین دلیل KDAB تصمیم به ایجاد KDDockWidgets گرفته است، که با آن تلاش می کند تا طراحی QDockWidgets را بسیار ساده کند ، در حالی که سازگاری آن را با شرایط خاص تسهیل می کند.

KDDockWidgets توابع زیر را فراهم می کند:

  • توانایی اتصال ویجت ها در یک پنجره شناور و اتصال آن گروه به پنجره اصلی
  • متصل به هر پنجره ، نه فقط پنجره اصلی
  • اتصال به مرکز پنجره اصلی
  • پشتیبانی از زبانه های قابل جدا شدن در ویجت مرکزی در پنجره اصلی
  • امکان جدا کردن زبانه ها از یک نوار برگه در منطقه اتصال
  • امکان ترکیب چندین زبانه با ترکیب اجزای مختلف.
  • ابزارک های کمک داخلی را در معرض دید قرار دهید تا کاربر بتواند آنها را سفارشی کند یا موارد اختصاصی خود را ارائه دهد.
  • گروههای ملفه می توانند آزادانه از یک پنجره خارجی (که فقط شامل این گروه م componentلفه است) به پنجره اصلی تغییر کنند (ویژگی جزئی در Qt 5.10 پیاده سازی شده).
  • ابزارکهای برگه را سفارشی کنید
  • میله های عنوان را سفارشی کنید
  • قاب های پنجره را سفارشی کنید
  • علاوه بر برجسته سازی اینکه تغییر اصلی افزودن شاخص های دقیق برای حذف عناصر از رابط کاربری گرافیکی است ، علاوه بر این مفهوم ویجت مرکزی از بین می رود ، زیرا به این ترتیب دیگر یک عنصر خاص نیست.

سازمان جدید منطق را از رابط گرافیکی به وضوح جدا می کند، به طوری که زمان اجرا اساسی است به راحتی می توان برای رابط های Qt Quick دوباره استفاده کرد (که در نهایت انتظار می رود). همچنین سفارشی سازی رابط کاربری را آسان می کند ، کاربر می تواند ابزارک های شخصی خود را برای هر قسمت از رابط کاربری ارائه دهد.

علاوه بر این، KDDockWidgets به عنوان یک چارچوب در نظر گرفته شده است ، بنابراین می توانید به راحتی رابط ها را نادیده بگیرید برای ایجاد ظاهر و رفتار سفارشی. KDDockWidgets یک چارچوب منبع باز است ، که تحت مجوزهای GPLv2 و GPLv3 است.

کد KDDockWidgets و همچنین نسخه نمایشی از آن در دسترس است در لینک زیر.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.