Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Responsable Qt & Livres

    KDDockWidgets : une bibliothèque pour remplacer QDockWidget
    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.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Membre éprouvé
    Il y a déjà cela dans Visual Studio

###raw>template_hook.ano_emploi###