Pygtk-signal-handling
提供:Dev Guides
PyGTK-信号処理
順次実行されるコンソールモードアプリケーションとは異なり、GUIベースのアプリケーションはイベント駆動型です。 * gtk.main()*関数は無限ループを開始します。 GUIで発生するイベントは、適切なコールバック関数に転送されます。
GObjectクラスから派生した各PyGTKウィジェットは、1つ以上のイベントに応じて*「シグナル」*を送信するように設計されています。 シグナル自体はアクションを実行しません。 代わりに、コールバック関数に「接続」されます。
一部の信号はウィジェットに継承されますが、一部の信号はウィジェット固有です。 たとえば、「toggled」信号は、toggleButtonウィジェットによって発行されます。
シグナルハンドラーは、gtk.widgetクラスの* connect()*メソッドを呼び出すことでセットアップされます。
- 最初の引数 name は、キャッチする信号の名前を含む文字列です。
- 2番目の引数 func は、キャッチされたときに呼び出されるコールバック関数です。
- 3番目の引数 func_data は、この関数に渡すデータです。
- コールバックメソッドを一意に識別するために使用されるハンドラーID。
たとえば、ボタンがクリックされたときにonClicked()関数を呼び出すには、次の構文を使用します-
onClicked()関数は次のように定義されています-
コールバックメソッドがオブジェクトメソッドである場合、追加の引数として自己を受け取ります-
例
次の例では、ボタンがgtk.Windowに追加されます。 ボタンをクリックすると、「Hello World」メッセージが出力されます。
Pythonプロンプトから上記のコードを実行します。 次の出力が表示されます-
ボタンが押されると、次の出力がコンソールに表示されます-