KDDockWidgets, napredni okvir za implementaciju QDockWidgeta

KDQDockWidget

Grupa KDAB je savjetnik za softver za Qt, C ++ i OpenGL aplikacije za različite platforme (desktop, ugrađene i mobilne), pored toga pruža poduke za razvoj Qt aplikacija od nule i u prenošenju svih popularnih okvira u Qt.

Kroz godine, KDAB je doprinio i financirao razvoj QDockWidgeta. Ali budući da je promjenama i ispravcima programskih pogrešaka trebalo puno dana da se primene, koristeći QdockWidget, Ispostavilo se da to nije dobra opcija, što je rodilo KDDockWidgets.

KDDockWidgets je napredni okvir za pristajanje za QDockWidgets, s kojim proširuje svoju upotrebu dodavanjem funkcija koje QDockWidgets ne podržava.

QdockWidget izvorno kombinira GUI kod s logikom sa stanjem, šta otežava napredovanje s novim funkcijama, što uzrokuje veliku složenost u njegovoj implementaciji na različitim platformama. Budući da je osnovna komponenta niza grafičkih korisničkih sučelja, pomoću nje možete premještati cijele elemente prozora (trake s alatima, grupe dodataka itd.) Gdje god želite.

Međutim, KDAB je tvrdio da održavanje QDockWidgets koda nije vrlo lako, kako komentariše da:

KDDockWidgets je rođen iz moje potrebe da sačuvam zdrav razum nakon što sam radio na dva projekta koja su zahtijevala opsežne prilagodbe. Onaj u kojem smo pokušali raditi direktno uzvodno, ali je stopa regresije na kraju bila prevelika.

I još jedan gdje sam krenuo putem korištenja privatnih API-ja, lažnih događaja miša i filtera događaja, što je u početku izgledalo kao dobra ideja, ali na kraju je postalo svijet boli. Također, naši su klijenti postajali kreativniji prema svojim zahtjevima, pa je bilo jasno da nam treba bolji okvir za pristajanje.

Glavni problem je njegov dizajn, prilično monolitno, ali podesivo (možemo odabrati funkcije dostupne korisniku, čak i ako to malo ljudi radi, za animacije), sa kodom špageta (veselo miješanjem logike i stanja komponenti). Stoga svaka promjena može stvoriti veliki broj regresija.

Zbog toga je KDAB odlučio stvoriti KDDockWidgets, kojim nastoji u velikoj mjeri pojednostaviti dizajn QDockWidgetsa, istovremeno olakšavajući njegovo prilagođavanje određenim situacijama.

KDDockWidgets pruža sljedeće funkcije:

  • Mogućnost postavljanja widgeta u plutajući prozor i pristajanje te grupe na glavni prozor
  • Pristanite na bilo koji prozor, ne samo na glavni prozor
  • Pristajanje u središte glavnog prozora
  • Podrška za odvojive kartice u središnjem widgetu unutar glavnog prozora
  • Mogućnost odvajanja jezičaka od trake s pločicama u podnožju
  • Mogućnost kombiniranja nekoliko kartica kombiniranjem nekoliko komponenata.
  • Izlaganje internih widgeta za pomoć tako da ih korisnik može prilagoditi ili pružiti vlastite.
  • Grupe komponenata mogu se slobodno prebaciti s vanjskog prozora (koji sadrži samo ovu grupu komponenata) na glavni prozor (funkcija djelomično implementirana u Qt 5.10).
  • Prilagodite vidžete kartice
  • Prilagodite trake naslova
  • Prilagodite okvire prozora
  • Pored isticanja da je glavna promjena dodavanje preciznih indikatora za uklanjanje elemenata iz GUI-a, pored činjenice da pojam centralnog widgeta nestaje, jer kao takav više nije specifičan element.

Nova organizacija jasno odvaja logiku od grafičkog interfejsa, tako da je osnovno vrijeme izvođenja lako se mogu ponovo koristiti za Qt Quick sučelja (što se u konačnici očekuje). Takođe olakšava prilagodbu sučelja, korisnik može osigurati vlastite widgete za bilo koji dio sučelja.

Takođe, KDDockWidgets je zamišljen kao okvir, tako da možete lako nadjačati sučelja kako bi se osigurao prilagođeni izgled i ponašanje. KDDockWidgets je okvir otvorenog koda, koja je pod licencama GPLv2 i GPLv3.

KDDockWidgets kôd, kao i njegov demo su dostupni Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.