
„KDAB Group“ yra programinės įrangos konsultacijų įmonė, teikianti konsultacijas dėl „Qt“, „C++“ ir „OpenGL“ programų, skirtų įvairioms platformoms (darbalaukio, įterptosioms ir mobiliosioms), be to, teikianti konsultacijas kuriant „Qt“ programas nuo nulio ir visų populiarių sistemų perkėlimo į „Qt“ metu.
Bėgant metams, KDAB prisidėjo prie „QDockWidget“ kūrimo ir jį finansavo . Tačiau kadangi pakeitimų ir klaidų taisymų įdiegimas užtruko daug dienų, „QDockWidget“ naudojimas pasirodė esąs prastas pasirinkimas, todėl buvo sukurtas „KDDockWidget“.
„KDDockWidgets“ yra pažangi „QDockWidgets“ prijungimo sistema , kuri išplečia jos naudojimą, pridėdama funkcijas, kurių nepalaiko „QDockWidgets“.
„QdockWidget“ natūraliai sujungia grafinės vartotojo sąsajos kodą su būsenos logika, todėl labai sunku pridėti naujų funkcijų ir tai sukelia didelį įgyvendinimo sudėtingumą skirtingose platformose. Būdamas pagrindiniu kelių grafinių vartotojo sąsajų komponentu, jis leidžia perkelti ištisus lango elementus (įrankių juostas, valdiklių grupes ir kt.) ten, kur norite.
Tačiau KDAB teigė, kad „QDockWidgets“ kodo priežiūra nėra labai paprasta, teigdama, kad:
„KDDockWidgets“ atsirado dėl mano poreikio išsaugoti sveiką protą, dirbus prie dviejų projektų, kuriuos reikėjo plačiai pritaikyti. Mes bandėme dirbti tiesiogiai prieš srovę, tačiau regresijos greitis buvo per didelis.
Ir dar viena vieta, kur aš naudojuosi privačiomis API, netikrais pelės įvykiais ir įvykių filtrais, kurie iš pradžių atrodė gera idėja, bet galų gale tapo skausmo pasauliu. Be to, mūsų klientai vis kūrybiškiau vykdė savo prašymus, todėl buvo aišku, kad mums reikia geresnės prijungimo sistemos.
Pagrindinė problema yra jo dizainas , kuris yra gana monolitinis, bet konfigūruojamas (galime pasirinkti vartotojui prieinamas funkcijas, net jei jas naudoja nedaug žmonių animacijoms), su „spageti“ kodu (laimingai derinant logiką ir komponentų būseną). Todėl bet koks pakeitimas gali sukelti daug regresijų.
Štai kodėl KDAB nusprendė sukurti „KDDockWidgets“ , kuriuo siekiama gerokai supaprastinti „QDockWidgets“ dizainą ir kartu palengvinti jo pritaikymą konkrečioms situacijoms.
KDDockWidgets teikia šias funkcijas:
- Galimybė prijungti valdiklius plaukiojančiame lange ir prijungti tą grupę prie pagrindinio lango
- Prijunkite prie bet kurio lango, ne tik prie pagrindinio lango
- Prijungimas prie pagrindinio lango centro
- Parama nuimamiems skirtukams pagrindiniame lange pagrindiniame lange
- Galimybė atjungti skirtukus nuo skirtukų juostos doko srityje
- Galimybė sujungti kelis skirtukus sujungiant kelis komponentus.
- Vidinių pagalbos valdiklių demonstravimas, kad vartotojas galėtų juos pritaikyti arba pateikti savo.
- Komponentų grupės gali laisvai pereiti iš išorinio lango (kuriame yra tik ši komponentų grupė) į pagrindinį langą (funkcija iš dalies įgyvendinta Qt 5.10).
- Tinkinkite skirtukų valdiklius
- Tinkinkite pavadinimo juostas
- Tinkinkite langų rėmus
- Be to, kad pabrėžiama, kad pagrindinis pakeitimas yra tikslių rodiklių pridėjimas, norint pašalinti elementus iš GUI, be to, kad centrinio valdiklio sąvoka išnyksta, nes savaime tai nebėra konkretus elementas.
Naujoji organizacija aiškiai atskiria logiką nuo grafinės sąsajos , todėl pagrindinį vykdymo laiko variklį galima lengvai pakartotinai panaudoti „Qt Quick“ sąsajoms (ko galiausiai ir tikimasi). Tai taip pat palengvina sąsajos pritaikymą; vartotojai gali kurti savo valdiklius bet kuriai sąsajos daliai.
Be to, „KDDockWidgets“ yra sukurta kaip sistema, todėl galite lengvai pakeisti sąsajas , kad suteiktumėte pasirinktinį elgesį ir išvaizdą. „KDDockWidgets“ yra atvirojo kodo sistema, licencijuota pagal GPLv2 ir GPLv3 licencijas.
„KDDockWidgets“ kodą ir jo demonstracinę versiją galite rasti šioje nuorodoje.