KDDockWidgets, un framework d'implementació avançat per QDockWidget

KDQDockWidget

el Grup KDAB és una consultora de programari per a aplicacions Qt, C++ i OpenGL per a les diferents plataformes (escriptori, integrades i mòbils), a més d'això proporciona tutoria per desenvolupar aplicacions Qt des de zero i en la transferència de tots els marcs populars a Qt.

Al llarg dels anys, KDAB ha contribuït i finançat el desenvolupament de QDockWidget. Però pel fet que els canvis i solucions a errors trigaven molts dies a implementar-se, l'ús de QdockWidget, resulto no ser una bona opció, donant així el naixement de KDDockWidgets.

KDDockWidgets ca un framework avançat d'acoblament per a QDockWidgets, amb el qual expandiu l'ús d'aquest afegint funcions que no admet QDockWidgets.

QdockWidget de manera nativa combina el codi GUI amb la lògica amb l'estat, el que fa que sigui molt difícil avançar amb noves característiques, cosa que causa una gran complexitat en la seva implementació dins de les diferents plataformes. Atès que és un component bàsic d'una sèrie d'interfícies gràfiques d'usuari, es poden moure elements complets de la finestra (barres d'eines, grups de ginys, etc.) on vulgueu.

No obstant això, KDAB argumentava que el manteniment del codi de QDockWidgets no és gaire fàcil, doncs comenta que:

KDDockWidgets va néixer de la meva necessitat de preservar el seny després d'haver treballat en dos projectes que necessitaven una àmplia personalització. Un en què vam intentar treballar directament aigües amunt però la taxa de regressió va acabar sent massa.

I un altre en què vaig prendre la ruta d'usar API privada, esdeveniments de ratolí falsos i filtres d'esdeveniments, que al principi semblaven una bona idea, però van acabar sent un món de dolor. A més, els nostres clients s'estaven tornant més creatius amb les seves sol·licituds, per la qual cosa estava clar que necessitàvem un marc d'acoblament millor.

El problema principal és el disseny, força monolític però configurable (podem triar les funcions disponibles per a l'usuari, fins i tot si poques persones ho fan, per a les animacions), amb un codi d'espagueti (barrejant alegrement la lògica i l'estat component). Per tant, qualsevol canvi pot crear una gran quantitat de regressions.

És per això que KDAB ha decidit crear KDDockWidgets, amb el qual cerca simplificar enormement el disseny QDockWidgets, alhora que facilita la seva adaptació a situacions particulars.

KDDockWidgets proporciona les funcions següents:

  • Poder acoblar widgets en una finestra flotant i acoblant aquest grup a la finestra principal
  • Acoblament a qualsevol finestra, no només a la finestra principal
  • Acoblament al centre de la finestra principal
  • Suport per a pestanyes desmuntables al giny central dins de la finestra principal
  • Poder separar pestanyes d'una barra de pestanyes en una àrea d'acoblament
  • Capacitat de poder combinar vares pestanyes combinant diversos components.
  • Exposar ginys dajuda interna perquè lusuari pugui personalitzar-los o proporcionar els seus propis.
  • Els grups de components poden canviar lliurement d'una finestra externa (que només conté aquest grup de components) a la finestra principal (una característica parcialment implementada a Qt 5.10).
  • Personalitzar ginys de pestanyes
  • Personalitzar barres de títol
  • Personalitzar marcs de finestres
  • A més que es destaca que el canvi principal és l'addició d'indicadors precisos per eliminar elements de la GUI, a més que la noció de giny central desapareix, ja que ja no és un element específic.

La nova organització separa clarament la lògica de la interfície gràfica, de manera que el motor d'execució subjacent es pot reutilitzar fàcilment per a les interfícies Qt Quick (que en darrera instància s'espera). També facilita la personalització de la interfície, lusuari pot proporcionar els seus propis ginys per a qualsevol part de la interfície.

A més, KDDockWidgets pretén ser un marc, per la qual cosa pot anul·lar fàcilment les interfícies per proporcionar un comportament i aparença personalitzats. KDDockWidgets és un framework de codi obert, que es troba sota les llicències GPLv2 i GPLv3.

El codi de KDDockWidgets i un demo d'aquest estan disponibles en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.