ruby-****@sourc*****
ruby-****@sourc*****
2003年 8月 30日 (土) 16:34:39 JST
------------------------- REMOTE_ADDR = 219.178.216.28 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/ja/?gtk2-tut-scrolledwindow ------------------------- = スクロールドウィンドウ スクロールドウィンドウはスクロール可能な領域を作成し,その中に他のウィジェットを置くことができる. スクロールドウィンドウにはどんな種類のウィジェットでも入れることができ,スクロールバーを使ってウィジェットのサイズを気にせずにアクセスできる. スクロールバーを作成するには: Gtk::ScrolledWindow.new(hadjustment = nil, vadjustment = nil) 最初の引数は水平方向の((<アジャストメント|gtk2-tut-adjuestment>))で,2つ目は垂直方向の((<アジャストメント|gtk2-tut-adjuestment>))である. 省略するとスクロールバーウィジェットが自分自身で必要な((<アジャストメント|gtk2-tut-adjuestment>))を作成する. 次のメソッドはスクロールバーに対して適用されるポリシを設定する: Gtk::ScrolledWindow#set_policy(hscrollbar_policy, vscrollbar_policy) 引数はそれぞれ水平方向/垂直方向のスクロールバーのポリシを指定する. ポリシとして使用できる値は次の2つのうちのどちらかである. :Gtk::POLICY_AUTOMATIC スクロールバーが必要な場合のみスクロールバーを表示する. :Gtk::POLICY_ALWAYS 常にスクロールバーを表示する. スクロールドウィンドウ内部にウィジェットを置くには: Gtk::ScrolledWindow#add_with_viewport(child) {{image_right "scrolledwindow.png"}} 次のサンプルでは,縦横10個ずつ,計100個のボタンをテーブルに配置し,そのテーブルをスクロールドウィンドウ内に置いている. {{br}} #! /usr/bin/env ruby require 'gtk2' Gtk.init window = Gtk::Window.new window.title = "Scrolled Window" window.signal_connect("destroy") {Gtk.main_quit} window.set_size_request(300, 300) scrolled_window = Gtk::ScrolledWindow.new scrolled_window.border_width = 10 scrolled_window.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS) window.add(scrolled_window) table = Gtk::Table.new(10, 10, false) table.row_spacings = table.column_spacings = 10 scrolled_window.add_with_viewport(table) (0...10).each do |i| (0...10).each do |j| table.attach_defaults( Gtk::Button.new("button(#{i},#{j})"), i, i + 1, j, j + 1 ) end end window.show_all Gtk.main