GladeとGlade2でgladeファイルのフォーマットが違うのね。しかも読み込みとか出来ないし。requireするライブラリ名が変わっているとか、Glade関連のメソッド名とか引数が変わっているし。Ruby/Gtkとruby/Gtk2への移行で、参考になるサイトを探すのが手間なんだよなあ。
このサンプルの場合、gladeのプロパティ画面のシグナルタブのハンドラの名前に対応する、メソッド名をdefで定義すればOK、ってことに気付くのにしばらくかかったヨ。
#!/usr/bin/ruby
# Debian woody向け
# ruby libglade-ruby libgtk-rubyのインストールが必要
require 'gtk'
require 'lglade'
class Test
def initialize
@glade = GladeXML.new("test.glade") {|handler| method(handler)}
@entry = @glade.getWidget("entry1")
end
def on_button1_pressed
@entry.set_text("button pressed!")
end
def on_button2_pressed
Gtk.main_quit
end
end
Test.new
Gtk.main
#!/usr/bin/ruby
# Debian sarge向け
# ruby libgtk2-ruby libglade2-rubyのインストールが必要
require 'gtk2'
require 'libglade2'
Gtk.init
class Test
def initialize
@glade = GladeXML.new("test2.glade", nil, nil, nil, GladeXML::FILE) {|handler| method(handl
er)}
@entry = @glade.get_widget("entry1")
end
def on_button1_pressed
@entry.set_text("button pressed!")
end
def on_button2_pressed
Gtk.main_quit
end
end
Test.new
Gtk.main
ダウンロード: 上記サンプルのダウンロード(Rubyスクリプト、Gladeファイル) 参考サイト: Ruby/GTK2 チュートリアル http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut GladeXMLのリファレンス http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?cmd=view&p=GladeXML&key=GladeXML#Object+Hierarchy Ruby-GNOME2 Project Website http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi
画面定義の.gladeファイルをGlade1とGlade2の間での変換をするためのメモ。libglade-convertというコマンドがあるので、それを用いて変換しなきゃなんないらしい。Glade2のほうで、旧gladeフォーマットも読み込んで変換してくれたらいいのに..。
libglade-convertコマンド * woodyではlibglade2-0パッケージに含まれる # apt-get install libglade2-0 * sargeではlibglade2-devパッケージに含まれる # apt-get install libglade2-dev
asahi.com - 「まんが日本昔ばなし」ゴールデン復活 http://www.asahi.com/culture/nikkan/NIK200508120013.html
mplayerとかのパッケージを配布されている阿川さんのサイトが、ドメイン切れになってしまっているので、atty.jpからatty.skr.jpに変更してアクセスしてください。9/1にドメイン復帰されるそうです。
阿川さんのblog http://d.hatena.ne.jp/atty/ 阿川さんのmplayerのページ (9/1まではこちら) http://atty.skr.jp/?Zaurus%2Fmplayer