
Grupi KDAB është një konsulencë softuerësh për aplikacionet Qt, C++ dhe OpenGL për platforma të ndryshme (desktop, të integruara dhe mobile), përveç ofrimit të mësimdhënies për të zhvilluar aplikacione Qt nga e para dhe për migrimin e të gjitha kornizave të njohura në Qt.
Gjatë viteve, KDAB ka kontribuar dhe financuar zhvillimin e QDockWidget . Megjithatë, për shkak se ndryshimet dhe rregullimet e gabimeve zgjatën shumë ditë për t'u zbatuar, përdorimi i QDockWidget rezultoi të ishte një zgjedhje e dobët, duke çuar në krijimin e KDDockWidgets.
KDDockWidgets është një strukturë e përparuar docking për QDockWidgets , e cila zgjeron përdorimin e saj duke shtuar veçori që nuk mbështeten nga QDockWidgets.
QdockWidget kombinon në mënyrë native kodin GUI me logjikën stateful, duke e bërë shumë të vështirë shtimin e veçorive të reja dhe duke shkaktuar kompleksitet të konsiderueshëm të implementimit në platforma të ndryshme. Si një komponent thelbësor i disa ndërfaqeve grafike të përdoruesit, ai ju lejon të zhvendosni elementë të tërë të dritares (shiritat e veglave, grupet e widget-eve, etj.) kudo që dëshironi.
Megjithatë, KDAB argumentoi se mirëmbajtja e kodit QDockWidgets nuk është shumë e lehtë, duke deklaruar se:
KDDockWidgets ka lindur nga nevoja ime për të ruajtur mendjen time të shëndoshë pasi kam punuar në dy projekte që kërkonin personalizim të gjerë. Një ku u përpoqëm të punonim drejtpërdrejt në rrjedhën e sipërme, por shkalla e regresionit përfundoi të ishte shumë.
Dhe një tjetër ku unë mora rrugën e përdorimit të API-ve private, ngjarjeve të rreme të miut dhe filtrave të ngjarjeve, të cilat në fillim dukeshin si një ide e mirë, por përfunduan duke qenë një botë dhimbjeje. Gjithashtu, klientët tanë po bëheshin më kreativë me kërkesat e tyre, kështu që ishte e qartë se kishim nevojë për një kornizë më të mirë ankorimi.
Problemi kryesor është dizajni i tij , i cili është mjaft monolit, por i konfigurueshëm (mund të zgjedhim funksionet që i ofrohen përdoruesit, edhe nëse pak njerëz i përdorin ato, për animacione), me kod spageti (duke përzier me kënaqësi logjikën dhe gjendjen e komponentëve). Prandaj, çdo ndryshim mund të krijojë një numër të madh regresionesh.
Kjo është arsyeja pse KDAB ka vendosur të krijojë KDDockWidgets , i cili synon të thjeshtojë shumë dizajnin e QDockWidgets, duke lehtësuar gjithashtu përshtatjen e tij në situata të veçanta.
KDDockWidgets ofron funksionet e mëposhtme:
- Të jesh në gjendje të vendosësh widget në një dritare lundruese dhe ta vendosësh atë grup në dritaren kryesore
- Dock në çdo dritare, jo vetëm në dritaren kryesore
- Vendosja në qendër të dritares kryesore
- Mbështetje për skedat e ndashme në miniaplikacionin qendror brenda dritares kryesore
- Të jesh në gjendje të shkëputësh skedat nga një shirit skedash në një zonë ankorimi
- Aftësia për të kombinuar disa skeda duke kombinuar përbërës të ndryshëm.
- Ekspozoni widgetet e ndihmës së brendshme në mënyrë që përdoruesi të mund t'i rregulloje ato ose të sigurojë të vetat.
- Grupet e përbërësve mund të kalojnë lirisht nga një dritare e jashtme (e cila përmban vetëm këtë grup përbërës) në dritaren kryesore (një tipar i zbatuar pjesërisht në Qt 5.10).
- Personalizoni miniaplikacionet e skedave
- Personalizo shiritat e titullit
- Personalizoni kornizat e dritareve
- Përveç theksimit se ndryshimi kryesor është shtimi i treguesve të saktë për të hequr elementet nga GUI, përveç kësaj nocioni i widgetit qendror zhduket, pasi si i tillë ai nuk është më një element specifik.
Organizimi i ri e ndan qartë logjikën nga ndërfaqja grafike , kështu që motori themelor i kohës së ekzekutimit mund të ripërdoret lehtësisht për ndërfaqet Qt Quick (gjë që në fund të fundit pritet). Gjithashtu lehtëson personalizimin e ndërfaqes; përdoruesit mund të ofrojnë widget-et e tyre për çdo pjesë të ndërfaqes.
Për më tepër, KDDockWidgets është menduar të jetë një kornizë, kështu që ju mund të anashkaloni lehtësisht ndërfaqet për të ofruar sjellje dhe pamje të personalizuar. KDDockWidgets është një kornizë me burim të hapur, e licencuar sipas licencave GPLv2 dhe GPLv3.
Kodi i KDDockWidgets, si dhe një demo e tij, janë të disponueshme në lidhjen e mëposhtme.