[ruby-gnome2-doc-cvs] [Hiki] update - tips_toolbar

Back to archive index

ruby-****@sourc***** ruby-****@sourc*****
2003年 9月 1日 (月) 00:18:28 JST


-------------------------
REMOTE_ADDR = 218.231.205.39
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/ja/?tips_toolbar
-------------------------
  = ツールバー上のボタンのアイコンだけ変更する
  ツールバーをはじめ、多くのウィジェットはGtk::Container, Gtk::Binのサブクラスです。それらのウィジェットはいくつかの子ウィジェットがまとまったウィジェットとなっていますので、その一つ一つの子ウィジェットを取り出して、その子ウィジェットのメソッドを呼び出すことができます。
  ここではツールバー上のボタンのアイコンを変更してみましょう。
  
   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)'))の部分はちょっと説明しづらいので以下のように分解してみます(自分で使う際はどちらでもお好みでどうぞ)。
  
     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番目の子ウィジェットを変更の対象とします。
+ (1)Gtk::ToolbarはGtk::ContainerのサブクラスなのでGtk::Container#childrenで子ウィジェットを全て取得できます。で、今回はその1番目の子ウィジェット(Gtk::Button)を変更の対象としますのでtoolbar.children[0]で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に対し、新しいアイコンをセットします。





ruby-gnome2-cvs メーリングリストの案内
Back to archive index