試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

メールマガジン:PyGIを用いる上での基本的な部分について(メインループ,GObjectシグナル,ハンドラ)

この記事について

メールマガジンの系統は「GTK+開発など」です。
GTK+アプリケーションのメインループとGObjectシグナルおよびそのハンドラについてを扱っています。
メインループの基本的な扱いやGObjectシグナルの操作について理解できているのであれば、この記事を読む必要はありません。
メールマガジンの詳細については「『試験運用中なLinux備忘録メールマガジン』の発行について」を参照してください。

途中までの内容

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃PyGIを用いる上での基本的な部分について                              ┃
┃(メインループ,GObjectシグナル,ハンドラ)                             ┃
┃                                     Python,PyGI,PyGObject,Vala,GTK+┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
━━━━━━━━━━━━━━━━━
プログラム全体の内部的な処理の流れ
━━━━━━━━━━━━━━━━━
GTK+はGUIの機能を提供するライブラリだが、一般的に、GUIアプリケーションの
処理の流れは「記述された順に処理を実行する」というものではなく

 * ユーザによるGUI部品への操作などの「イベント」が起こったときに
   関連付けられた処理を呼び出す
 * プログラム内の流れは「ループ」しており、操作などによるイベントが
   起こらない状態ではそのまま何もせずに動き続ける(イベントを待機)

というものとなっており、このような流れはイベント駆動(event-driven)方式と
呼ばれる。

──────
メインループ
──────
プログラム内の流れは待機状態で「ループ」する形となるが、この
ループ(メインループという)は自動的に開始するものではなく、専用の関数を
呼び出すことで開始する。ループ構文で何かを処理したりすることはなく、
単純にこれ(1つの関数)を呼び出すだけでよい。

(以下略)

───────── (以下は見出しのみの紹介となります) ─────────

━━━━━━━━━━━━━━
イベントとハンドラの関連付け
━━━━━━━━━━━━━━
──────────
メンバ関数connect()
──────────
─────────
GObjectシグナル名
─────────
───────
ハンドラの引数
───────