本页内容

Qt Jenny:Java 代码生成器

Qt Jenny 可将 Java API 转换为 Qt C++ 封装类,从而使 Qt C++ 程序能够调用 Java 功能。这在具备 Java 系统 API 的平台上(如 Android)尤为有用。

功能

Qt Jenny的功能:

  • 为任意 Java 类生成封装类。
  • 支持模板化生成,可通过自定义模板调整 C++ 输出内容。
  • 可配置的生成功能,允许控制生成的封装类的命名空间。
  • 支持在生成的代码中使用QJniObject ,从而充分利用QJniObject 带来的所有便利。

示例

请参阅QtJenny 演示,了解如何使用Qt Jenny 。

Qt Jenny 的工作原理

Qt Jenny 通过以下构建模块将 Java API 转换为 Qt C++ 封装类:

  • 导入待封装类的 Kotlin 代码。
  • 该代码中的注解,用于指定需要封装的类。
  • 读取注解并生成封装代码的代码生成器。

基于这些构建模块,Qt 项目的结构如下:有一个独立的 Gradle 项目用于生成代码,而 Qt CMake 项目则使用该代码。CMake 项目会在项目配置时(换言之,即运行 CMake 时)触发代码生成。 对于仅调用方法而无需实现任何回调的应用程序,一个代码生成项目就足够了。 对于同时使用方法调用和接口回调的应用程序,需要两个生成项目:一个用于方法代理,另一个用于回调层次结构。对于需要扩展类的应用程序,需要三个生成项目:一个用于方法代理,一个用于 Java 粘合代码,另一个用于回调层次结构。

QtJenny Demo中的示例代码使用了三个生成项目,因为它使用了类扩展。

工作原理

参考

许可与归属

Qt Jenny 可能包含遵循以下宽松许可协议的第三方模块:

© 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.