[ruby-gnome2-doc-cvs] [Hiki] create - gtk2-tut-paned

Back to archive index

ruby-****@sourc***** ruby-****@sourc*****
2003年 8月 30日 (土) 15:49:58 JST


-------------------------
REMOTE_ADDR = 219.178.216.28
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/ja/?gtk2-tut-paned
-------------------------
=ペインドウィンドウウィジェット 
ぺインドウィンドウウィジェットは,あるエリアを二つに分割したい場合に便利である.
2つの領域の間には溝が描画され,ユーザは溝に付いたハンドルをドラッグして2つの領域の相対サイズを変更できる.
分割の方向は水平方向(Gtk::HPaned)にも垂直方向(Gtk::VPaned)にもできる.

新しくぺインドウィンドウを作成する:

  Gtk::HPaned.new
  Gtk::VPaned.new

ぺインドウィンドウを作成したら,2つの領域に子ウィジェットを追加しよう.

  Gtk::Paned#add1(child)
  Gtk::Paned#add2(child)

Gtk::Paned#add1は子ウィジェットを左側または上側の領域に追加し,Gtk::Paned#add2は子ウィジェットを右側または下側の領域に追加する.

{{image_right "paned.png"}}
例として架空の電子メールプログラムのユーザインタフェース部を作ってみよう.
ウィンドウは垂直方向に2分割され,上側に電子メールのリストが,下側にはそのメールの本文が表示されるようになっている.
{{br}}

  #! /usr/bin/env ruby
  require 'gtk2'
  
  def create_list
  	scrolled_window = Gtk::ScrolledWindow.new
  	scrolled_window.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
  
  	model = Gtk::ListStore.new(String)
  	tree_view = Gtk::TreeView.new(model)
  	scrolled_window.add_with_viewport(tree_view)
  
  	1.upto(9) do |i|
  		model.set_value(model.append, 0, "Message ##{i}")
  	end
  
  	cell = Gtk::CellRendererText.new
  	column = Gtk::TreeViewColumn.new("Messages", cell, :text => 0)
  	tree_view.append_column(column)
  
  	scrolled_window
  end
     
  def create_text
  	view = Gtk::TextView.new
  	view.buffer.text = <<MAIL
  From: pathf****@nasa*****
  To: mom****@nasa*****
  Subject: Made it!
  
  We just got in this morning. The weather has been
  great - clear but cold, and there are lots of fun sights.
  Sojourner says hi. See you soon.
   -Path
  MAIL
  	scrolled_window = Gtk::ScrolledWindow.new
  	scrolled_window.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
  	scrolled_window.add(view)
     scrolled_window
  end
  
  Gtk.init
  
  window = Gtk::Window.new
  window.title = "Paned Windows"
  window.signal_connect("destroy") {Gtk.main_quit}
  window.border_width = 10
  window.set_size_request(450, 400)
  
  vpaned = Gtk::VPaned.new
  window.add(vpaned)
  
  vpaned.add1(create_list)
  vpaned.add2(create_text)
  
  window.show_all
  Gtk.main






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