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)
  • ปรับแต่งวิดเจ็ตแท็บ
  • ปรับแต่งแถบหัวเรื่อง
  • ปรับแต่งกรอบหน้าต่าง
  • นอกเหนือจากการเน้นว่าการเปลี่ยนแปลงหลักคือการเพิ่มตัวบ่งชี้ที่แม่นยำเพื่อลบองค์ประกอบออกจาก GUI นอกเหนือจากความจริงที่ว่าความคิดของวิดเจ็ตส่วนกลางหายไปเนื่องจากมันไม่ใช่องค์ประกอบเฉพาะอีกต่อไป

โครงสร้างองค์กรใหม่นี้แยกส่วนตรรกะออกจากส่วนติดต่อผู้ใช้แบบกราฟิกอย่างชัดเจนทำให้สามารถนำเอนจินรันไทม์พื้นฐานมาใช้ซ้ำกับส่วนติดต่อผู้ใช้ของ Qt Quick ได้อย่างง่ายดาย (ซึ่งเป็นสิ่งที่คาดหวังไว้ในที่สุด) นอกจากนี้ยังช่วยให้การปรับแต่งส่วนติดต่อผู้ใช้ทำได้ง่ายขึ้น ผู้ใช้สามารถเพิ่มวิดเจ็ตของตนเองลงในส่วนใดก็ได้ของส่วนติดต่อผู้ใช้

นอกจากนี้KDDockWidgets ถูกออกแบบมาให้เป็นเฟรมเวิร์ก ดังนั้นคุณจึงสามารถเขียนทับอินเทอร์เฟซต่างๆ ได้อย่างง่ายดายเพื่อให้ได้พฤติกรรมและรูปลักษณ์ที่กำหนดเอง KDDockWidgets เป็นเฟรมเวิร์กโอเพนซอร์สที่ได้รับอนุญาตภายใต้ใบอนุญาต GPLv2 และ GPLv3

โค้ดของ KDDockWidgets พร้อมทั้งตัวอย่างการใช้งาน สามารถดูได้ที่ลิงก์ต่อไปนี้


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google