Qt Jenny: Générateur de code Java
Qt Jenny convertit les API Java en wrappers Qt C++, permettant ainsi aux programmes Qt C++ d’appeler des fonctionnalités Java. Cela s’avère particulièrement utile sur une plateforme dotée d’API système Java, comme Android.
Fonctionnalités
Qt Jenny:
- Génération de wrappers pour n'importe quelle classe Java.
- Génération à l'aide de modèles personnalisables permettant d'adapter le code C++ généré.
- Génération configurable permettant de contrôler l'espace de noms des wrappers générés.
- Prise en charge de la génération de code utilisant l'QJniObject, permettant ainsi de tirer pleinement parti de toutes les fonctionnalités pratiques offertes par l'QJniObject.
Exemples
Consultez la démo QtJenny pour découvrir un exemple d'utilisation d'Qt Jenny.
Fonctionnement d’ Qt Jenny
Qt Jenny traduit les API Java en wrappers Qt C++ à l’aide des éléments constitutifs suivants :
- Du code Kotlin qui importe les classes à encapsuler.
- Des annotations dans ce code qui indiquent quelles classes doivent être encapsulées.
- Un générateur de code qui lit les annotations et génère le code du wrapper.
Grâce à ces éléments constitutifs, le projet Qt est alors structuré de manière à ce qu’il existe un projet Gradle distinct pour générer le code utilisé par le projet CMake de Qt. Le projet CMake déclenche la génération de code au moment de la configuration du projet (en d’autres termes, lorsque vous exécutez CMake). Pour une application qui appelle des méthodes mais qui n’a pas besoin d’implémenter de callbacks, un seul projet de génération de code suffit. Pour une application utilisant à la fois des appels de méthodes et des callbacks d’interface, deux projets de génération sont nécessaires : un pour les proxys de méthodes et un pour la hiérarchie des callbacks. Pour une application devant étendre des classes, trois projets de génération sont nécessaires : un pour les proxys de méthodes, un pour le code de liaison Java et un pour la hiérarchie des callbacks.
Le code d’exemple de QtJenny Demo utilise trois projets de génération, car il utilise l’extension de classe.
Référence
Licences et mentions
Qt Jenny contient potentiellement des modules tiers sous les licences permissives suivantes :
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.