新規作成  編集  Ruby-GNOME2 Project Website  ページ一覧  検索  更新履歴  編集履歴  RSS  ログイン

gtk2-tut-scrolledwindow

スクロールドウィンドウ

スクロールドウィンドウはスクロール可能な領域を作成し,その中に他のウィジェットを置くことができる. スクロールドウィンドウにはどんな種類のウィジェットでも入れることができ,スクロールバーを使ってウィジェットのサイズを気にせずにアクセスできる.

スクロールバーを作成するには:

Gtk::ScrolledWindow.new(hadjustment = nil, vadjustment = nil)

最初の引数は水平方向のアジャストメント?で,2つ目は垂直方向のアジャストメント?である. 省略するとスクロールバーウィジェットが自分自身で必要なアジャストメント?を作成する.

次のメソッドはスクロールバーに対して適用されるポリシを設定する:

Gtk::ScrolledWindow#set_policy(hscrollbar_policy, vscrollbar_policy)

引数はそれぞれ水平方向/垂直方向のスクロールバーのポリシを指定する. ポリシとして使用できる値は次の2つのうちのどちらかである.

Gtk::POLICY_AUTOMATIC
スクロールバーが必要な場合のみスクロールバーを表示する.
Gtk::POLICY_ALWAYS
常にスクロールバーを表示する.

スクロールドウィンドウ内部にウィジェットを置くには:

Gtk::ScrolledWindow#add_with_viewport(child)

scrolledwindow.png 次のサンプルでは,縦横10個ずつ,計100個のボタンをテーブルに配置し,そのテーブルをスクロールドウィンドウ内に置いている.

#! /usr/bin/env ruby
require 'gtk2'

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
更新日時:2006/07/02 14:33:48
キーワード:
参照:[ビューポート] [gtk2-tut-scrollbar] [gtk2-tut]