
KDAB Group on ohjelmistokonsultointiyritys, joka kehittää Qt-, C++- ja OpenGL-sovelluksia eri alustoille (työpöytä-, sulautetut ja mobiililaitteet). Lisäksi se tarjoaa ohjausta Qt-sovellusten kehittämiseen alusta alkaen ja kaikkien suosittujen sovelluskehysten migraatioon Qt:hen.
Vuosien varrella KDAB on osallistunut QDockWidgetin kehittämiseen ja rahoittanut sitä . Koska muutosten ja virheenkorjausten toteuttaminen vei kuitenkin useita päiviä, QDockWidgetin käyttö osoittautui huonoksi valinnaksi, mikä johti KDDockWidgetsin luomiseen.
KDDockWidgets on edistynyt telakointikehys QDockWidgetsille , joka laajentaa sen käyttöä lisäämällä ominaisuuksia, joita QDockWidgets ei tue.
QdockWidget yhdistää natiivisti graafisen käyttöliittymäkoodin tilalliseen logiikkaan, mikä tekee uusien ominaisuuksien lisäämisestä erittäin vaikeaa ja aiheuttaa merkittävää toteutuksen monimutkaisuutta eri alustoilla. Useiden graafisten käyttöliittymien ydinkomponenttina se mahdollistaa kokonaisten ikkunaelementtien (työkalurivien, widget-ryhmien jne.) siirtämisen minne tahansa.
KDAB kuitenkin väitti, että QDockWidgets-koodin ylläpito ei ole kovin helppoa, todeten seuraavaa:
KDDockWidgets syntyi tarpeestani säilyttää järkevyyteni, kun olin työskennellyt kahdessa projektissa, jotka tarvitsivat laajaa räätälöintiä. Yksi, jossa yritimme työskennellä suoraan ylävirtaan, mutta regressiovauhti päätyi liikaa.
Ja toinen, jossa käytin yksityisten sovellusliittymien, väärennettyjen hiirtapahtumien ja tapahtumasuodattimien käyttöä, joka tuntui aluksi hyvältä ajatukselta, mutta päätyi tuskan maailmaan. Asiakkaamme olivat myös luovempia pyyntöjensä suhteen, joten oli selvää, että tarvitsemme paremman telakointikehyksen.
Suurin ongelma on sen suunnittelu , joka on melko monoliittinen mutta konfiguroitavissa (voimme valita käyttäjälle saatavilla olevat funktiot animaatioita varten, vaikka niitä käyttäisi vain harva), ja jossa käytetään spagettikoodia (logiikkaa ja komponenttien tilaa onneksi yhdistellen). Siksi mikä tahansa muutos voi luoda suuren määrän regressioita.
Siksi KDAB on päättänyt luoda KDDockWidgetsin , jonka tavoitteena on yksinkertaistaa QDockWidgetsin suunnittelua huomattavasti ja samalla helpottaa sen mukauttamista tiettyihin tilanteisiin.
KDDockWidgets tarjoaa seuraavat toiminnot:
- Pystyy telakoimaan widgetit kelluvaan ikkunaan ja telakoimaan kyseinen ryhmä pääikkunaan
- Telakoi mihin tahansa ikkunaan, ei vain pääikkunaan
- Telakointi pääikkunan keskelle
- Tukee irrotettavia välilehtiä pääikkunan keskimmäisessä widgetissä
- Mahdollisuus irrottaa välilehtiä telakointialueen välilehtipalkista
- Kyky yhdistää useita välilehtiä yhdistämällä useita komponentteja.
- Sisäisten ohjevideoiden esittely, jotta käyttäjä voi muokata niitä tai tarjota omia.
- Komponenttiryhmät voivat vapaasti siirtyä ulkoisesta ikkunasta (joka sisältää vain tämän komponenttiryhmän) pääikkunaan (ominaisuus, joka on osittain toteutettu Qt 5.10: ssä).
- Mukauta välilehden widgettejä
- Muokkaa otsikkopalkkeja
- Mukauta ikkunakehyksiä
- Sen lisäksi, että korostetaan, että tärkein muutos on tarkkojen indikaattoreiden lisääminen elementtien poistamiseksi käyttöliittymästä sen lisäksi, että keskeisen widgetin käsite katoaa, koska sinänsä se ei ole enää erityinen elementti.
Uusi organisaatio erottaa logiikan selkeästi graafisesta käyttöliittymästä , joten taustalla olevaa ajonaikaista moottoria voidaan helposti käyttää uudelleen Qt Quick -käyttöliittymissä (mikä onkin odotettavissa). Se myös helpottaa käyttöliittymän mukauttamista; käyttäjät voivat luoda omia widgetejään mille tahansa käyttöliittymän osalle.
Lisäksi KDDockWidgets on tarkoitettu kehykseksi, joten voit helposti ohittaa käyttöliittymät ja tarjota mukautettuja toimintoja ja ulkoasua. KDDockWidgets on avoimen lähdekoodin kehys, joka on lisensoitu GPLv2- ja GPLv3-lisensseillä.
KDDockWidgets-koodi ja sen demo ovat saatavilla seuraavasta linkistä.