ruby-****@sourc*****
ruby-****@sourc*****
2003年 9月 1日 (月) 00:10:12 JST
------------------------- REMOTE_ADDR = 218.231.205.39 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/ja/?tips_toolbar ------------------------- = ツールバー上のボタンのアイコンだけ変更する 以下に例を示します。 require 'gtk2' Gtk.init toolbar = Gtk::Toolbar.new toolbar.append(Gtk::Stock::NEW) do toolbar.children[0].child.children[0].set(Gtk::Stock::QUIT, Gtk::IconSize::SMALL_TOOLBAR) #(1) end Gtk::Window.new.add(toolbar).show_all Gtk.main - (1)の部分は以下のように分解して書けます。 + (('(1)'))の部分は以下のように分解して書けます。 button = toolbar.children[0] vbox = button.child image = vbox.children[0] image.set(Gtk::Stock::QUIT, Gtk::IconSize::SMALL_TOOLBAR) 処理の流れは以下のようになります。 (1)Gtk::ToolbarはGtk::ContainerのサブクラスなのでGtk::Container#childrenで子ウィジェットを全て取得できます。で、今回はその1番目の子ウィジェットを変更の対象とします。 (2)Gtk::ButtonはGtk::Binのサブクラスで子ウィジェットは1つしかありません。子ウィジェットはGtk::Bin#childで取得でき、Gtk::VBoxになります。 (3)Gtk::VBoxもGtk::Containerのサブクラスです。vbox.children[0]で1番目の子ウィジェットであるGtk::Imageを取得します。 (4)取得したGtk::Imageに対し、新しいアイコンをセットします。