KDDockWidgets, un cadre d'implémentation avancé pour QDockWidget

KDQDockWidget

Le Groupe KDAB est une société de conseil en logiciels pour les applications Qt, C ++ et OpenGL pour différentes plates-formes (bureau, embarqué et mobile), en plus de cela fournit un tutorat pour développer des applications Qt à partir de zéro et en transférant toutes les images populaires vers Qt.

Tout au long des années, KDAB a contribué et financé le développement de QDockWidget. Mais comme les changements et les corrections de bogues ont pris plusieurs jours à implémenter, en utilisant QdockWidget, Il s'est avéré que ce n'était pas une bonne option, donnant ainsi naissance à KDDockWidgets.

KDDockWidgets est un framework d'ancrage avancé pour QDockWidgets, avec lequel il étend son utilisation en ajoutant des fonctions que QDockWidgets ne prend pas en charge.

QdockWidget combine nativement le code GUI avec la logique avec l'état, Que lo rend très difficile d'avancer avec de nouvelles fonctionnalités, ce qui entraîne une grande complexité dans sa mise en œuvre au sein des différentes plateformes. Puisqu'il s'agit d'un composant de base d'une série d'interfaces utilisateur graphiques, vous pouvez déplacer des éléments de fenêtre entiers (barres d'outils, groupes de widgets, etc.) où vous le souhaitez.

Toutefois, KDAB a fait valoir que la maintenance du code QDockWidgets n'est pas très facile, comme il commente que:

KDDockWidgets est né de mon besoin de préserver ma santé mentale après avoir travaillé sur deux projets nécessitant une personnalisation approfondie. Un où nous avons essayé de travailler directement en amont mais le taux de régression a fini par être trop élevé.

Et un autre où j'ai pris la route de l'utilisation d'API privées, de faux événements de souris et de filtres d'événements, ce qui semblait être une bonne idée au début, mais qui a fini par être un monde de douleur. De plus, nos clients devenaient plus créatifs avec leurs demandes, il était donc clair que nous avions besoin d'un meilleur cadre d'ancrage.

Le principal problème est sa conception, assez monolithique mais configurable (on peut choisir les fonctions disponibles pour l'utilisateur, même si peu de gens le font, pour les animations), avec un code spaghetti (mélangeant joyeusement logique et état des composants). Par conséquent, toute modification peut créer un grand nombre de régressions.

C'est pourquoi KDAB a décidé de créer KDDockWidgets, avec lequel il cherche à simplifier grandement la conception de QDockWidgets, tout en facilitant son adaptation à des situations particulières.

KDDockWidgets fournit les fonctions suivantes:

  • Être capable d'ancrer des widgets dans une fenêtre flottante et d'ancrer ce groupe à la fenêtre principale
  • Accédez à n'importe quelle fenêtre, pas seulement à la fenêtre principale
  • Ancrage au centre de la fenêtre principale
  • Prise en charge des onglets détachables dans le widget central de la fenêtre principale
  • Être capable de détacher des onglets d'une barre d'onglets dans une zone d'ancrage
  • Possibilité de combiner plusieurs onglets en combinant divers composants.
  • Exposer les widgets d'aide internes afin que l'utilisateur puisse les personnaliser ou fournir les leurs.
  • Les groupes de composants peuvent passer librement d'une fenêtre externe (qui ne contient que ce groupe de composants) à la fenêtre principale (une fonctionnalité partiellement implémentée dans Qt 5.10).
  • Personnaliser les widgets d'onglets
  • Personnaliser les barres de titre
  • Personnaliser les cadres de fenêtre
  • En plus de souligner que le principal changement est l'ajout d'indicateurs précis pour supprimer des éléments de l'interface graphique, en plus du fait que la notion de widget central disparaît, puisqu'elle n'est plus un élément spécifique.

La nouvelle organisation sépare clairement la logique de l'interface graphique, de sorte que le runtime sous-jacent soit peut facilement être réutilisé pour les interfaces Qt Quick (ce qui est finalement attendu). Cela facilite également la personnalisation de l'interface, l'utilisateur peut fournir ses propres widgets pour n'importe quelle partie de l'interface.

En outre, KDDockWidgets est destiné à être un framework, vous pouvez donc facilement remplacer les interfaces pour fournir une apparence et un comportement personnalisés. KDDockWidgets est un framework open source, qui est sous les licences GPLv2 et GPLv3.

Le code KDDockWidgets ainsi qu'une démo de celui-ci sont disponibles dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.