9

Webkit または cairo drwaing をホストするためのウィンドウが必要ですが、自分が何をしているのかを理解するには、最初にそれらすべてに対処する必要があります。

今。私は途方に暮れ、それが何であるかを理解できなくなりました。

そして、バインディングを操作したり、何かの依存関係を理解し​​ようとしたりすると、事態はさらに悪化します。例: Python では、pyGtk は廃止され、pyGObject (pyGl と呼ばれることもあります!!) に置き換えられました。

多くのサイトがあり、多くのダウンロードとバージョンがあり、古い参照と新しい参照が混在していますが、全体を 1 つのアーキテクチャ ビューで見ることはできません

私が理解できないのは..あまりにも多くのサイト、パッケージ、バージョンでこれらすべてがどのように混ざり合っているのですか?

4

2 に答える 2

17

短編小説:

GTK 2 用にプログラミングしている場合は、pyGTK を使用してください。

GTK 3 用にプログラミングしている場合は、pyGObject を使用してください。

長い話:

私が理解したことから、pyGTK は pyGObject に基づいていました。GObject は GTK の「オブジェクト」API です。GTK は、オブジェクト指向言語ではない C で開発されています。GObject は、高度なオブジェクト指向機能を提供するライブラリです。すべての GTK オブジェクトは、そのライブラリが提供する GObject クラスを継承します。

次に、GObject のイントロスペクション作業が始まりました。その目標は、バインディングのメンテナンスを容易にし、ソース コードの注釈を使用して各言語 (python、C++ など) のほとんどのバインディング コードを自動的に生成することでした。これにより、GObject イントロスペクション作業に基づく python バインディングである pyGI の python 側が生まれました。その時、人々は GTK3 開発にそれを使用するように言われました。

それ以来、pyGI によって提供されていた GObject イントロスペクションの作業は、GObject に統合されました。pyGObject は最終的に、開発者が GTK3 での Python 開発に使用すべきものになりました。

読んでください:

GNOME/GTK の関係について:

GTK は GNOME プロジェクトで使用されるツールキットです。GIMP から抽出されたため、その名前が付けられました (GTK は GIMP Tool Kit の略です)。GTK は GNOME プロジェクトの中核部分であり、GTK 開発者はしばしば GNOME プロジェクトにも関与しています。

于 2012-03-12T18:08:54.427 に答える
12

あなたが言及したそれらのコンポーネントについての私の理解:

質問で言及されているコンポーネントの依存関係チェーン、GNOME 2

質問で言及されているコンポーネントの依存関係チェーン、GNOME 3

  • GI は、コア GNOME ライブラリが準拠するインターフェイスと考えてください。
  • PyGI はもう存在しません。これは、GNOME 3 セットアップの PyGObject の一部になりました。
  • GTK、GTK+、GTK2 の関係は?
于 2012-03-13T06:26:03.403 に答える