みんなのPython読み終わってなんかひさびさに燃えてきた感じになって、数年ぶりにpygtkでもやってみようと思ってぐぐっていたら、pygtkとgladeの話が出てきてちょいとチュートリアルを試してみました。
- Creating a GUI using PyGTK and Glade (邦訳: PyGTK と Glade を使った GUI の作り方)
- Building an Application with PyGTK and Glade
記事自体がLinuxをベースにしているので、Windowsでも大丈夫かな?というテストも兼ねて今回はWindows側に環境を作りました(いや、単に再起動が面倒だっただけですけど)。以下のものを順番にインストールしただけでOKでした。全部デフォルト設定です。
- Glade/GTK+ for Windows
- Python 2.4.3
- The Numeric module
- pygtk on win32 (pygtkとpycairoを両方)
あと、開発環境としてeclipse+pydevを使ったりしています。
環境が整ったらチュートリアルに沿ってひたすらGladeでGUIを設計したり、コードを書いては実行してという感じで進めていきましたが、一点を除いてまったく問題なく動きました。ちょっと感動ものです。とくにチュートリアルの邦訳がすごくよく、今までよくわからなかったGladeの使い方がするっとわかったのがすごく収穫でした。
問題箇所は、"destory"イベントが、signal_autoconnectでつなげたときにまったく動作しないというものでした。もしかするとWindows版のバグか、バージョン依存のバグかな?とか思いました。とりあえず、チュートリアルで最初に紹介されているconnect()を使ったイベントの登録をすれば、この問題は発生しないようです。connect() -> signal_autoconnect() と呼んでも"destroy"イベントが上書きされる事もありません。
とりあえず、今後の目標としてチュートリアルのPyWineをいじってテーブルが編集できるようにしたり、SQLiteあたりでデータの保存ができるようにとかどうかなと考え中。あー楽しい〜