Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

KDDockWidgets : une bibliothèque pour remplacer QDockWidget
Avec une meilleure maintenabilité et des possibilités de personnalisation plus avancées

Le , par dourouc05

0PARTAGES

9  0 
QDockWidget est un composant de base d’un certain nombre d’interfaces graphiques, surtout celles qui veulent offrir une grande flexibilité d’organisation à l’utilisateur. Avec ce widget, on peut déplacer des éléments complets de la fenêtre (des barres d’outils, des groupes de widgets, etc.) où on le souhaite, ces éléments gravitant autour du centre de la fenêtre (souvent, le contenu à éditer).


Cependant, la maintenance de ce code n’est pas très aisée (ni même l’adaptation fine de son rendu). Le problème principal est sa conception, assez monolithique mais configurable (on peut choisir les fonctionnalités disponibles à l’utilisateur, même si peu de gens le font, jusqu’aux animations), avec un code spaghetti (mélangeant allègrement la logique et l’état du composant). Tout changement risque donc de créer un grand nombre de régressions.

KDAB a donc décidé de se lancer dans une nouvelle génération de ce composant, pour le moment externe à Qt. KDDockWidgets cherche à simplifier fortement la conception du composant, tout en facilitant son adaptation aux situations particulières. Pour l’utilisateur, le changement principal est l’ajout d’indicateurs précis pour déposer des éléments de l’interface graphique, en plus de la liberté totale en termes de zones d’accrochage. La notion de widget central disparaît, il ne s’agit plus d’un élément spécifique ; aussi, on peut avoir des onglets en combinant plusieurs composants. Les groupes de composants peuvent librement passer 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).


La nouvelle organisation sépare clairement la logique de l’interface graphique, de telle sorte que le moteur d’exécution sous-jacent peut facilement être réutilisé pour des interfaces Qt Quick (ce qui est prévu à terme). Elle facilite aussi la personnalisation de l’interface, l’utilisateur pouvant fournir ses propres widgets pour n’importe quelle partie de l’interface.

Cette bibliothèque est déjà utilisée en interne chez KDAB, mais son interface n’est pas encore fixée. Cela devrait bientôt arriver, avec des garanties de stabilité de l’interface (au niveau des sources et des binaires), en vue d’une version 1.0. Elle n’est disponible que sous la licence GPL (2 ou 3), pas LGPL, ce qui en limitera fortement l’utilisation dans les projets libres ; pour les projets commerciaux, KDAB propose d’autres licences.

Voir le code source de KDDockWidgets.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de archqt
Membre confirmé https://www.developpez.com
Le 08/11/2019 à 11:07
Il y a déjà cela dans Visual Studio
0  2