Qt / QML Tricks
Un ensemble de macros C++, de classes Qt, et de composants QML / QtQuick visant à accélerer et simplifier le développement d'applications Qt / QML.
Page web du projet
Un ensemble de macros C++, de classes Qt, et de composants QML / QtQuick visant à accélerer et simplifier le développement d'applications Qt / QML.
Page web du projet
Les classes Qt
Les modèles de données
Les classes QQmlObjectListModel et QQmlVariantListModel permettent de créer des QAbstractListModel en une ligne, respectivement à partir de QObject et de QVariant, qui peuvent facilement être utilisés en QML.
Le convertisseur SVG
Le QQuickSvgHelper permet d'utiliser un SVG comme fichier source pour un pictogramme symbolique, pour le convertir en PNG. En bonus, il permet de recolorier l'icône avec une couleur particulière. Les PNG sont conservés sur le disque tant que le SVG source n'est pas modifié.
Les macros C++
Les propriétés
Pour faciliter la déclaration et l'implémentation de propriétés en C++, plusieurs macros sont utilisables, permettant de combler le fossé entre QML (une seule ligne par propriété) et C++ (près d'une quinzaine de lignes).
Les listes d'instances QML
Les QQmlListProperty sont relativement compliquées à utiliser en C++, car elle nécessitent un certain nombre de callbacks et l'implémentation manuelles pour chacune. Une macro est donc disponible pour créer tout cela de façon transparente.
Les classes d'énumeration
Une macro qui déclare un simple Q_GADGET avec à l'intérieur une énumération et la macro Q_ENUMS nécessaire pour l'utiliser en QML. L'avantage de cette macro est que l'utilisation des valeurs d'enumération en QML sera restreinte au nom de la classe (plutôt que d'avoir plusieurs enumerations mélangés dans une même classe).
Les composants QML / QtQuick
Les contrôles / champs
Ces composants servent à afficher et/ou modifier une valeur (chaîne de caractères, nombre, booléen, ...), et sont plutôt classiques : zone de texte mono/multi-lignes, case à cocher, barre de progression, etc.
Les conteneurs
Ces composants sont utilisés pour mettre en page d'autres composants, en lignes/colonnes/grilles, avec ou sans dimensionement automatique. Certains sont capable de répartir l'espace disponible entre plusieurs élements, en les étirant.
Il y a aussi d'autres conteneurs plus sophistiqués comme les barre d'onglets, les panneaux latéraix rétractables/détachables, les accordéons, ...
Les formes
Ces composants comblent un manque en QtQuick : ils ajoutent le support des lines, des polygones, des rectangles avec différents rayons à chaque coin, des cercles/ellipses/anneaux/arcs...
Les autres
Tous les composants visuels suivent les variables de tailles/couleur d'un objet de style global, permettant une personalisation simplifiée, et une apparence cohérente.
La collection de composants comporte aussi des boites de dialogue modales, un sélecteur de fichiers, des ancrages additionels, et même des icônes/symbôles.