1

プロジェクトでGofficeライブラリを使用することにしました。しかし、私は C++ で書いているので、GTK+ を直接使用するのではなく gtkmm を使用するのと同じように、C++ クラス インターフェイスを使用することを好みます。

ドキュメント (上記のリンクを参照) には、GObject Introspection を使用できると書かれています。それで私はそれを読み始めました。私は読んで読んで読んで、GOfficeのバインディングの使い方を理解できませんでした。私のシステムで、PackageKit によってインストールされたファイルのリストで、goffice gi-repository/typelib ファイルを探しました。何も見つかりませんでした。goffice または goffice-devel パッケージが gobject イントロスペクション パッケージに依存しているかどうかを PackageKit で確認しました。間接的に依存しているかもしれませんが、直接依存しているわけではありません (そうでなければ、リストに表示されます)。

何度も試してみましたが、GOffice などの GObject で記述されたライブラリを取得し、それを Python などの別の言語、または私の場合は C++ で使用する方法を簡単に説明できるリソースを見つけることができませんでした。もちろん、Cの関数を直接使うこともできますが、ポイントはgtkmmに似たインターフェースを持ちたいということです。

(私は GNU/Linux を使用し、gtkmm と GNU ビルド システム、goffice バージョン 0.10 でデスクトップ アプリケーションを作成しています)

4

3 に答える 3

3

現在、C++ 用の GObject イントロスペクション ツールはありません。ユーザーのリストはhttps://live.gnome.org/GObjectIntrospection/Usersで確認できます。

GOffice の automake ファイル の 1 つに基づいて、GIR 名 GOffice は GOffice-0.10 であるため、 と を期待する必要が$(pkg-config --variable=girdir gobject-introspection-1.0)/GOffice-0.10.girあり$(pkg-config --variable=typelibdir gobject-introspection-1.0)/GOffice-0.10.typelibますが、ディストリビューションのパッケージにこれらのファイルが含まれていない可能性があります。その場合は、バグの報告を検討することをお勧めします。

GObject Introspection for Python の使用方法に関するドキュメントについては、PyGObject サイトを確認してください。これらはThe Python GTK+ 3 Tutorialにリンクしており、PyGObject の使用方法を理解するのに役立ちます。他の言語に関しては、ドキュメントは言語と実装によって異なります。

于 2013-02-20T12:32:24.570 に答える
1

gtkmm、glibmm、およびその他の -mm ライブラリは、現在も gmmproc ツールを使用して GObject ベースのライブラリのバインドを生成しています。このツールは GObject Introspection (GI は GTK+ 3 から安定していると見なされます) よりも古く、ツールが C++ ソース コードを生成するために使用する特別なマクロを含むヘッダーを手動で作成する必要があります。詳細とハウツーについては、gmmproc を使用した C ライブラリのラッピングを参照してください。

GObject Introspection を使用した C++ バインディングの自動生成に関しては、WIPが 1 つだけ見つかりました: gi-mmです。

あるいは、GObject ConsumeSmoke-GObjectがあり、どちらも Qt フレームワークを介して GObject を C++ と統合するために使用できます。

于 2014-03-25T14:14:11.803 に答える