smellman's Broken Diary

クソみたいなもんです

Windows で pygtk & glade

みんなのPython読み終わってなんかひさびさに燃えてきた感じになって、数年ぶりにpygtkでもやってみようと思ってぐぐっていたら、pygtkとgladeの話が出てきてちょいとチュートリアルを試してみました。

  1. Creating a GUI using PyGTK and Glade (邦訳: PyGTK と Glade を使った GUI の作り方)
  2. Building an Application with PyGTK and Glade

記事自体がLinuxをベースにしているので、Windowsでも大丈夫かな?というテストも兼ねて今回はWindows側に環境を作りました(いや、単に再起動が面倒だっただけですけど)。以下のものを順番にインストールしただけでOKでした。全部デフォルト設定です。

  1. Glade/GTK+ for Windows
  2. Python 2.4.3
  3. The Numeric module
  4. pygtk on win32 (pygtkとpycairoを両方)

あと、開発環境としてeclipse+pydevを使ったりしています。
環境が整ったらチュートリアルに沿ってひたすらGladeでGUIを設計したり、コードを書いては実行してという感じで進めていきましたが、一点を除いてまったく問題なく動きました。ちょっと感動ものです。とくにチュートリアルの邦訳がすごくよく、今までよくわからなかったGladeの使い方がするっとわかったのがすごく収穫でした。
問題箇所は、"destory"イベントが、signal_autoconnectでつなげたときにまったく動作しないというものでした。もしかするとWindows版のバグか、バージョン依存のバグかな?とか思いました。とりあえず、チュートリアルで最初に紹介されているconnect()を使ったイベントの登録をすれば、この問題は発生しないようです。connect() -> signal_autoconnect() と呼んでも"destroy"イベントが上書きされる事もありません。
とりあえず、今後の目標としてチュートリアルのPyWineをいじってテーブルが編集できるようにしたり、SQLiteあたりでデータの保存ができるようにとかどうかなと考え中。あー楽しい〜