このページでは

Qt Jenny: Javaコードジェネレータ

Qt Jenny は、Java APIをQt C++ラッパーに変換し、Qt C++プログラムからJavaの機能を呼び出せるようにします。これは、AndroidのようにJavaシステムAPIを備えたプラットフォームで特に有用です。

機能

Qt Jennyの機能:

  • 任意のJavaクラスに対するラッパーの生成。
  • C++の出力をカスタマイズするために変更可能なテンプレートを用いた、テンプレートベースの生成。
  • 生成されるラッパーの名前空間を制御できる、設定可能な生成機能。
  • 生成されたコード内でQJniObject を使用するコードの生成をサポートしており、QJniObject が提供するあらゆる利便性を活用できます。

例

Qt Jenny の使用例については、QtJenny デモを参照してください。

Qt Jenny の仕組み

Qt Jenny xml-ph-0000@deepl.internalは、以下の構成要素を使用して、Java APIをQt C++ラッパーに変換します:

  • ラップ対象のクラスをインポートするKotlinコード。
  • どのクラスをラップするかを指定する、そのコード内のアノテーション。
  • アノテーションを読み取り、ラッパーコードを生成するコードジェネレータ。

これらの構成要素を用いて、Qtプロジェクトは、Qt CMakeプロジェクトが使用するコードを生成するための独立したGradleプロジェクトが設けられるように構成されます。CMakeプロジェクトは、プロジェクトの構成時(つまり、CMakeを実行するとき)にコード生成をトリガーします。 メソッドを呼び出すだけで、コールバックを実装する必要のないアプリケーションの場合、単一のコード生成プロジェクトで十分です。 メソッドの呼び出しとインターフェースのコールバックの両方を使用するアプリケーションの場合、2 つの生成プロジェクトが必要になります。1 つはメソッドプロキシ用、もう 1 つはコールバック階層用です。クラスを拡張する必要があるアプリケーションの場合、3 つの生成プロジェクトが必要になります。1 つはメソッドプロキシ用、1 つは Java グルーコード用、もう 1 つはコールバック階層用です。

QtJenny Demoのサンプルコードは、クラスの拡張を使用しているため、3つの生成プロジェクトを使用しています。

仕組み

参考

ライセンスおよび帰属表示

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.