PyGTKを使うための環境準備

WindowsXPでVMwarePlayerを使ってUbuntu12.04LTSを動かして、その上で開発する前提でPyGTKを使える環境を作る。

Windows側であらかじめ用意

SSHPuTTYが軽いのでこれを使ってる。X ServerはXmingPuTTY連携に設定して使う。

Ubuntu

PyGTKのインストール

aptでインストール。devのほうをインストールすれば依存で必要なものはそろう。

$ sudo aptitude install python-gtk2-dev

コードを書く

PyGTKを使った簡単なスクリプトを作成する。

hello_gtk.py
# coding: utf-8
import pygtk
pygtk.require('2.0')
import gtk


class MyApp(object):
    def __init__(self):
        self.window = gtk.Window()

        self.button_test = gtk.Button('test')
        self.button_test.connect('clicked', self.on_button_test_clicked)

        self.window.add(self.button_test)
        self.window.connect('delete-event', self.on_delete_event)

    def on_delete_event(self, window, event, data=None):
        """ウィンドウ閉じる
        """
        gtk.main_quit()
        return False

    def on_button_test_clicked(self, widget, data=None):
        """ボタンクリック
        """
        self.messagebox('Hello, PyGTK!')

    def messagebox(self, text):
        dialog = gtk.MessageDialog(
            self.window,
            gtk.DIALOG_MODAL,
            gtk.MESSAGE_INFO,
            gtk.BUTTONS_OK,
            text,
        )
        dialog.run()
        dialog.destroy()

    def main(self):
        # 画面を表示してメインループに入る
        self.window.show_all()
        gtk.main()


if __name__ == '__main__':
    app = MyApp()
    app.main()

動作確認

Xmingを実行して、PuTTYUbuntuにつなぐ。作成したスクリプトを実行。
アプリの起動中は入力は戻ってこないので、バックグラウンドにするかscreenなどでシェルを引き続き使えるようにしておくのも良い。

$ python hello_gtk.py

2012/6/29追記

ちなみにMacOSXのほうだとX11が使えるので楽。