この件に関するドキュメントは見つかりませんでした (間違った場所を探していたのでしょうか? 私には奇妙に思えます) 。
Vala アプリケーションで Qt GUI を使用できるようにする必要があるだけです。例をいただければ幸いです。
他の人が述べたように、Qt と Vala は連携して動作しませんが、だからといって、それらを連携させることが不可能というわけではありません。それは主に、カバーの下で何が起こっているかを理解することです。
Vala は C コードを生成し、それを gcc (またはインストールされている別のコンパイラ) に渡してバイナリを生成します。Vala 設計者の主な目標の 1 つは、Vala が C ベースのライブラリを作成することであったことに注意してください。これらは、C ベースのバインディングを受け入れる他の言語 (Python、Ruby、Java など) で使用できます。
したがって、Vala を使用して、Qt C++ GUI アプリケーションが呼び出す C ベースのライブラリをコーディングできます。Vala コンパイラは、Qt アプリが #include するだけの .h ファイルを生成します。
これに関する問題は、Qt と Vala が異なるオブジェクト システムを使用していることです。Qt には QObject、Vala には GObject です。(Vala は他のバックエンドを許可しており、Vala が GObject ベースの C の代わりに Qt C++ を生成するという考えさえありますが、それは遠い将来のことです。) QObject と GObject は互換性がないため、QObject が GObject と通信するには、多くの手動の C ベースの作業を行う必要があります。(C で GObject を書くのは非常に冗長なので、Vala の魅力はそのすべてを隠すことです。)
しかし、それは可能です。Qt は、独自の ではなく GLib のイベント ループを使用することにも注意してください。これにより、イベント ドリブン アプリケーションでコードを混在させることができます。
上記の方法を心からお勧めすることはできませんが、理論的には可能です。これは主に、C++ コードが C コードを簡単に呼び出すことができるためです。
検討する価値のあるもう 1 つの可能性は、Vala コードを DBus サーバーにし、Qt コードを DBus クライアントにすることです。DBus は洗練された IPC であるため、すべてのアプリケーションに適しているわけではありませんが、あなたのアプリケーションには適しているかもしれません。Vala は DBus クライアントとサーバーを簡単に生成できるので魅力的です (これらは通常のオブジェクトのように見えます)。Qt DBus バインディングを生成するツールも利用できます。これは、Vala コードが別のプロセスとして実行され、インプロセス ライブラリではないことを意味することに注意してください。http://live.gnome.org/Vala/DBusServerSampleおよびhttp://live.gnome.org/Vala/DBusClientSamplesを参照してください。
これはあなたが望むものではありませんが、https: //live.gnome.org/GObjectIntrospection/GObjectConsumeを見てください。 これはC++にgobject-introspectionをもたらします。GObjectConsumeを使用すると、valaライブラリをC++およびqtで使用できます。