のGLibとのGObjectから2つの別々のCライブラリでありますGTK + GUIツールキットが構築されています(とりわけ)。
Cは低レベル言語なので、GLibはPythonに組み込まれているもの(ファイル入出力、文字列操作、メモリ管理、スレッディングなど)に似たユーティリティのような多くの基本機能を提供します。
Cはオブジェクト指向言語ではないので、GObjectはプロパティと継承を含むCベースのオブジェクトシステムを提供しています(既にPythonに組み込まれています)。 Pythonでは、(Pythonにはその機能の大部分が組み込まれているので)GLibを直接使うことはめったにありませんが、GObjectはGLibに依存しています。
すべてのGObjectベースのライブラリは、Pythonなどの他の言語への言語バインディングをサポートするように設計されています。
GObjectは、「シグナル」と呼ばれるイベントシステムを提供しています。 GObjectから派生したオブジェクトは、発生したイベントの通知を送信するためのシグナルを「送出」できます。 python-mpdor
のMPDProtocolClient
クラスは、GObjectから派生したもので、シグナルを送出することができます。アプリケーションはこれらの信号に機能を「接続」します。例えばF
、READMEこの例を示します。この場合
import gobject
import mpdor
def notify(client, vol):
print "mpd volume is at ", vol + "%"
client = mpdor.client.Client()
client.connect("mixer-change", notify)
gobject.MainLoop().run()
を、notify
という名前の関数は、関数がいつクライアント「発する呼び出されることを意味"mixer-change"
信号に「接続」されています"その信号。 gobject.MainLoop().run()
コールは、イベントドリブンプログラミングの標準概念である「main event loop」(基本的には無限ループ)を入力します。
多くのGObject/Pythonチュートリアルはありませんが、Python/GTK +の基本を少し習得すれば、イベントループ、シグナル、およびコンセプトの概念を把握できるでしょうシグナルコールバック。 (python-mpdorはPyGObjectの新しいGTK + 3とは対照的にPyGTKとなるGTK + 2を使用しているようです。
幸運。
+1とてもいい説明。 – RanRag