
Rühm KDAB on tarkvarakonsultatsioon Qt, C ++ ja OpenGL rakenduste jaoks lisaks sellele erinevatele platvormidele (lauaarvutitele, manustatud ja mobiilsetele) pakub juhendamist Qt-rakenduste arendamiseks nullist ja kõigi populaarsete kaadrite ülekandmisel Qt-le.
Aastate jooksul KDAB on panustanud ja rahastanud QDockWidgeti arendamist. Kuna muudatuste ja veaparanduste rakendamine võttis QdockWidgeti abil mitu päeva aega, Selgus, et see pole hea variant, sünnitades sellega KDDockWidgetsi.
KDDockWidgets on täiustatud dokkimisraamistik QDockWidgetsi jaoks, millega ta laiendab oma kasutamist, lisades funktsioone, mida QDockWidgets ei toeta.
QdockWidget ühendab GUI koodi loogikaga loomulikult olekuga, kui muudab uute funktsioonidega edasiliikumise väga raskeks, mis põhjustab selle rakendamise erinevatel platvormidel väga keerukat. Kuna see on graafiliste kasutajaliideste seeria põhikomponent, saate sellega terveid aknaelemente (tööriistaribasid, vidinagruppe jne) teisaldada kuhu soovite.
Kuid KDAB väitis, et QDockWidgetsi koodi säilitamine pole eriti lihtne, kui ta kommenteerib, et:
KDDockWidgets sündis minu vajadusest säilitada mõistlikkus pärast seda, kui olin töötanud kahes projektis, mis vajasid ulatuslikku kohandamist. Üks, kus proovisime töötada otse ülesvoolu, kuid taandarengu määr oli lõpuks liiga suur.
Ja veel üks, kus ma kasutasin privaatsete API-de, võltshiire sündmuste ja sündmuste filtrite kasutamise marsruuti, mis tundus alguses hea mõte, kuid lõpuks oli see valus maailm. Samuti muutusid meie kliendid oma taotlustega loovamaks, seega oli selge, et vajame paremat dokkimisraamistikku.
Peamine probleem on selle disain, üsna monoliitne, kuid konfigureeritav (animatsioonide jaoks saame valida kasutajale kättesaadavad funktsioonid, isegi kui vähesed seda teevad), spagetikoodiga (loogikat ja komponentide olekut segades). Seetõttu võib iga muudatus tekitada suure hulga taandarenguid.
Seetõttu otsustas KDAB luua KDDockWidgets, millega ta püüab QDockWidgetsi kujundust oluliselt lihtsustada, hõlbustades samas selle kohandamist konkreetsete olukordadega.
KDDockWidgets pakub järgmisi funktsioone:
- Vidinate dokkimine ujuvas aknas ja selle grupi peaaknasse dokkimine
- Dokkige mis tahes aknasse, mitte ainult peaaknasse
- Dokkimine peaakna keskele
- Peaakna keskse vidina eemaldatavate vahekaartide tugi
- Võimalus dokkimisala vahelehti sakkide küljest lahti ühendada
- Võimalus kombineerida mitut vahelehte, kombineerides erinevaid komponente.
- Eksponeerige sisemised vidinad, et kasutaja saaks neid kohandada või pakkuda oma.
- Komponendigrupid saavad vabalt väliselt aknalt (mis sisaldab ainult seda komponentide rühma) põhiaknale (funktsioon, mis on osaliselt rakendatud Qt 5.10).
- Kohandage vahelehtede vidinaid
- Kohandage pealkirjaribasid
- Kohandage aknaraame
- Lisaks sellele, et peamine muudatus on täpsete näitajate lisamine elementide GUI-st eemaldamiseks, lisaks sellele, et ka keskse vidina mõiste kaob, kuna see ei ole enam konkreetne element.
Uus organisatsioon eraldab loogika graafilisest liidesest selgelt, nii et aluseks olev tööaeg on saab hõlpsasti Qt Kiirliideste jaoks uuesti kasutada (mida lõpuks oodatakse). See hõlbustab ka liidese kohandamist, kasutaja saab oma liidese mis tahes osa jaoks pakkuda oma vidinaid.
Lisaks KDDockWidgets on mõeldud raamistikuks, nii et saate liidestest hõlpsasti üle kirjutada pakkuda kohandatud välimust ja käitumist. KDDockWidgets on avatud lähtekoodiga raamistik, mis on GPLv2 ja GPLv3 litsentside all.
Saadaval on nii KDDockWidgetsi kood kui ka selle demo Järgmisel lingil.