
Ang grupo Ang KDAB ay isang consultancy ng software para sa Qt, C ++ at OpenGL application para sa iba't ibang mga platform (desktop, naka-embed at mobile), bilang karagdagan sa na nagbibigay ng pagtuturo upang bumuo ng mga aplikasyon ng Qt mula sa simula at sa paglilipat ng lahat ng tanyag na mga frame sa Qt.
Sa paglipas ng mga taon, Ang KDAB ay nag-ambag at nagpopondo sa pagbuo ng QDockWidget. Ngunit dahil ang mga pagbabago at pag-aayos ng bug ay tumagal ng maraming araw upang maipatupad, gamit ang QdockWidget, Ito ay naging hindi isang mahusay na pagpipilian, sa gayon ay nagbibigay ng kapanganakan ng KDDockWidgets.
Ang KDDockWidgets ay isang advanced framework ng docking para sa QDockWidgets, kung saan pinapalawak nito ang paggamit nito sa pamamagitan ng pagdaragdag ng mga pagpapaandar na hindi suportado ng QDockWidgets.
Ang QdockWidget ay katutubong pinagsasama ang GUI code sa lohika na may estado, bilang napakahirap magpatuloy sa mga bagong tampok, na nagdudulot ng malaking kumplikado sa pagpapatupad nito sa loob ng iba't ibang mga platform. Dahil ito ay isang pangunahing bahagi ng isang serye ng mga graphic na interface ng gumagamit, kasama nito maaari mong ilipat ang buong mga elemento ng window (mga toolbar, pangkat ng mga widget, atbp.) Saan mo man gusto.
Gayunpaman, Nagtalo ang KDAB na ang pagpapanatili ng QDockWidgets code ay hindi napakadali, habang siya ay nagkomento na:
Ang KDDockWidgets ay isinilang sa labas ng aking pangangailangan upang mapanatili ang aking katinuan matapos magtrabaho sa dalawang proyekto na nangangailangan ng malawak na pagpapasadya. Isa kung saan sinubukan naming gumana nang direkta sa agos ngunit ang rate ng pag-urong ay natapos na sobra.
At isa pa kung saan kinuha ko ang ruta ng paggamit ng mga pribadong API, pekeng mga kaganapan sa mouse, at mga filter ng kaganapan, na tila isang magandang ideya sa una, ngunit napunta sa isang mundo ng sakit. Gayundin, ang aming mga kliyente ay nagiging mas malikhain sa kanilang mga kahilingan, kaya malinaw na kailangan namin ng isang mas mahusay na balangkas ng pag-dock.
Ang pangunahing problema ay ang disenyo nito, medyo monolithic ngunit maaaring mai-configure (maaari naming piliin ang mga pagpapaandar na magagamit sa gumagamit, kahit na ilang mga tao ang gawin, para sa mga animasyon), na may spaghetti code (maligaya na paghahalo ng lohika at estado ng sangkap). Samakatuwid, ang anumang pagbabago ay maaaring lumikha ng isang malaking bilang ng mga pagbabalik.
Iyon ang dahilan kung bakit nagpasya ang KDAB na lumikha ng KDDockWidgets, kung saan hinahangad nitong lubos na gawing simple ang disenyo ng QDockWidgets, habang pinapabilis ang pagbagay nito sa mga partikular na sitwasyon.
Nagbibigay ang KDDockWidgets ng mga sumusunod na pagpapaandar:
- Ang kakayahang i-dock ang mga widget sa isang lumulutang na window at i-dock ang pangkat na iyon sa pangunahing window
- Dock sa anumang window, hindi lamang ang pangunahing window
- Docking sa gitna ng pangunahing window
- Suporta para sa mga nababakas na tab sa gitnang widget sa loob ng pangunahing window
- Nakakalayo ng mga tab mula sa isang tab bar sa isang docking area
- Kakayahang pagsamahin ang maraming mga tab sa pamamagitan ng pagsasama ng maraming mga bahagi.
- Ilantad ang panloob na mga widget ng tulong upang maipasadya ng gumagamit ang mga ito o magbigay ng kanilang sarili.
- Ang mga pangkat ng sangkap ay maaaring malayang lumipat mula sa isang panlabas na window (na naglalaman lamang ng pangkat ng sangkap na ito) patungo sa pangunahing window (isang tampok na bahagyang ipinatupad sa Qt 5.10).
- Ipasadya ang mga widget ng tab
- Ipasadya ang mga pamagat ng pamagat
- Ipasadya ang mga frame ng window
- Bilang karagdagan sa pagha-highlight na ang pangunahing pagbabago ay ang pagdaragdag ng mga tumpak na tagapagpahiwatig upang alisin ang mga elemento mula sa GUI, bilang karagdagan sa ang katunayan na ang paniwala ng gitnang widget na nawala, dahil tulad nito hindi na ito isang tiyak na elemento.
Malinaw na pinaghihiwalay ng bagong organisasyon ang lohika mula sa grapikong interface, upang ang pinagbabatayan na runtime ay madaling magamit muli para sa Qt Mabilis na mga interface (na sa huli ay inaasahan). Ginagawa nitong madali upang ipasadya ang interface, ang gumagamit ay maaaring magbigay ng kanilang sariling mga widget para sa anumang bahagi ng interface.
Bukod dito, Ang KDDockWidgets ay inilaan upang maging isang balangkas, upang madali mong ma-override ang mga interface upang magbigay ng pasadyang hitsura at pag-uugali. Ang KDDockWidgets ay isang bukas na framework ng mapagkukunan, na nasa ilalim ng mga lisensya ng GPLv2 at GPLv3.
Ang code ng KDDockWidgets pati na rin ang isang demo nito ay magagamit Sa sumusunod na link.