KDDockWidgets, מסגרת יישום מתקדמת ל- QDockWidget

KDQDockWidget

קבוצת KDAB היא חברת ייעוץ תוכנה ליישומי Qt, C++ ו-OpenGL עבור פלטפורמות שונות (שולחן עבודה, משובצות וניידות), בנוסף למתן הדרכה לפיתוח יישומי Qt מאפס ובהעברת כל המסגרות הפופולריות ל-Qt.

במהלך השנים, KDAB תרמה ומימנה את הפיתוח של QDockWidget . עם זאת, מכיוון ששינויים ותיקוני באגים ארכה ימים רבים ליישום, השימוש ב-QDockWidget התגלה כבחירה גרועה, מה שהוביל ליצירת KDDockWidgets.

KDDockWidgets היא מסגרת עגינה מתקדמת עבור QDockWidgets , אשר מרחיבה את השימוש בה על ידי הוספת פונקציות ש-QDockWidgets אינו תומך בהן.

QdockWidget משלב באופן טבעי קוד ממשק משתמש גרפי (GUI) עם לוגיקה מבוססת מצבים, מה שמקשה מאוד על הוספת תכונות חדשות וגורם למורכבות יישום משמעותית בפלטפורמות שונות. כמרכיב מרכזי במספר ממשקי משתמש גרפיים, הוא מאפשר לך להזיז רכיבי חלון שלמים (סרגלי כלים, קבוצות ווידג'טים וכו') לכל מקום שתרצה.

עם זאת, KDAB טען כי תחזוקת קוד QDockWidgets אינה קלה במיוחד, וקבע כי:

KDDockWidgets נולד מתוך הצורך שלי לשמור על שפיותי לאחר שעבדתי על שני פרויקטים שדרשו התאמה אישית נרחבת. אחד שבו ניסינו לעבוד ישירות במעלה הזרם, אך בסופו של דבר קצב הרגרסיה היה יותר מדי.

ועוד אחד בו עשיתי את המסלול של שימוש בממשקי API פרטיים, אירועי עכבר מזויפים ומסנני אירועים, שנראו רעיון טוב בהתחלה, אך בסופו של דבר היה עולם של כאב. כמו כן, הלקוחות שלנו נהיו יצירתיים יותר עם בקשותיהם, כך שהיה ברור שאנחנו זקוקים למסגרת עגינה טובה יותר.

הבעיה העיקרית היא העיצוב שלו , שהוא די מונוליטי אך ניתן להגדרה (אנו יכולים לבחור את הפונקציות הזמינות למשתמש, גם אם מעט אנשים משתמשים בהן, עבור אנימציות), עם קוד ספגטי (המשלב בשמחה לוגיקה ומצב רכיב). לכן, כל שינוי יכול ליצור מספר רב של רגרסיות.

זו הסיבה ש-KDAB החליטה ליצור את KDDockWidgets , שבאמצעותם היא מבקשת לפשט מאוד את עיצוב QDockWidgets, תוך הקלה על התאמתה למצבים ספציפיים.

KDDockWidgets מספק את הפונקציות הבאות:

  • היכולת לעגון ווידג'טים בחלון צף ולעגון את הקבוצה לחלון הראשי
  • עגינה לכל חלון, לא רק לחלון הראשי
  • עגינה למרכז החלון הראשי
  • תמיכה בכרטיסיות ניתנות להסרה ביישומון המרכזי בתוך החלון הראשי
  • היכולת לנתק כרטיסיות מסרגל כרטיסיות באזור עגינה
  • יכולת לשלב מספר לשוניות על ידי שילוב של רכיבים שונים.
  • חשף יישומוני עזרה פנימיים כך שהמשתמש יוכל להתאים אישית אותם או לספק את עצמם.
  • קבוצות רכיבים יכולות לעבור באופן חופשי מחלון חיצוני (שמכיל רק קבוצת רכיבים זו) לחלון הראשי (תכונה המיושמת בחלקה ב- Qt 5.10).
  • התאם אישית ווידג'טים של כרטיסיות
  • התאם אישית את שורות הכותרת
  • התאם אישית מסגרות חלונות
  • בנוסף להדגשה שהשינוי העיקרי הוא הוספת אינדיקטורים מדויקים להסרת אלמנטים ממשק המשתמש, בנוסף לעובדה שהרעיון של יישומון מרכזי נעלם, מכיוון שהוא כבר לא אלמנט ספציפי.

הארגון החדש מפריד בבירור בין הלוגיקה לממשק הגרפי , כך שניתן לעשות שימוש חוזר בקלות במנוע זמן הריצה הבסיסי עבור ממשקי Qt Quick (כצפוי בסופו של דבר). זה גם מאפשר התאמה אישית של הממשק; משתמשים יכולים לספק ווידג'טים משלהם לכל חלק בממשק.

יתר על כן, KDDockWidgets נועד להיות מסגרת, כך שתוכלו בקלות לעקוף את הממשקים כדי לספק התנהגות ומראה מותאמים אישית. KDDockWidgets היא מסגרת קוד פתוח, המורשית תחת רישיונות GPLv2 ו-GPLv3.

קוד KDDockWidgets, כמו גם הדגמה שלו, זמינים בקישור הבא.


הוסף כמקור מועדף בגוגל