[ruby-gnome2-doc-cvs] [Hiki] update - 普通のボタン

Back to archive index

ruby-****@lists***** ruby-****@lists*****
2003年 5月 11日 (日) 23:29:58 JST


-------------------------
REMOTE_ADDR = 61.26.70.211
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/?%C9%E1%C4%CC%A4%CE%A5%DC%A5%BF%A5%F3
-------------------------
= 普通のボタン
これまでにボタンウィジェットについて見るべきものはほとんど全て見て来た。
実に簡単である。
しかし、ボタンを作成する方法は一通りではない.

{{image_right "button.png"}}
:Gtk::Button.new
  ボタンウィジェットを作成する.
:Gtk::Button.new(text, use_underline = true)
  Gtk::Button.newにStringを与えると,Gtk::Labelを内包するボタンウィジェットを生成することができる.
  use_underlineがtrueの場合,text中の'_'は次の文字の下線として表示される.
  もし'_'自身を表示したい場合,'__'のように'_'を続けて2つ書く.
  最初の下線装飾された文字はニーモニックと呼ばれるキーボードアクセラレータとして登録され,
  Altキーとその文字を同時に押すと"activate"シグナルが発行される.
:Gtk::Button.new(stock_id)
  ストックアイテムとは,"Open"や"Exit"のような一般にメニューやツールバーで使用される部品である.
  各ストックアイテムはストックIDで識別される.
  Gtk::Button.newの引数にストックIDを渡すことで,
  ストックIDに対応したストックアイテムを内部に含むボタンを作成できる.
  ストックアイテムについては((<アイテムファクトリ>))を参照.

次のプログラムでは,様々な方法でボタンウィジェットを生成している.
生成方法が実際のボタンウィジェットの振舞いや外観にどのような影響を与えるのか確認しよう.

  #! /usr/bin/env ruby
  
  require 'gtk2'
  
  Gtk::init
  
  window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
  window.signal_connect("delete_event") {Gtk::main_quit}
  window.signal_connect("destroy") {Gtk::main_quit}
  
  box = Gtk::VBox.new(false, 0)
  window.add(box)
  
  button = Gtk::Button.new("_Tex_t")
  button.signal_connect("activate") do
  	puts "activated"
  end
  box.pack_start(button, false, false, 5)
  
  button = Gtk::Button.new("_Text", false)
  box.pack_start(button, false, false, 5)
  
  count = 0
  button = Gtk::Button.new
  button.signal_connect("clicked") do |b|
  	b.label = "#{count} times"
  	count += 1
  end
  box.pack_start(button, false, false, 5)
  
  button = Gtk::Button.new(Gtk::Stock::OK)
  box.pack_start(button, false, false, 5)
  
  window.show_all
  Gtk::main

{{image_right "pixmap_button.png"}}

  #! /usr/bin/env ruby
  
  require 'gtk2'
  
  def xpm_label_box(xpm_filename, label_text)
  	box = Gtk::HBox.new(false, 0)
  	box.border_width = 2
  
  	image = Gtk::Image.new(xpm_filename)
  	label = Gtk::Label.new(label_text)
  
  	box.pack_start(image, false, false, 3)
  	box.pack_start(label, false, false, 3)
  
  	box
  end
  
  Gtk::init
  
  window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
  window.title = "Pixmap'd Buttons!"
  window.border_width = 10
  window.signal_connect("destroy") {Gtk::main_quit}
  window.signal_connect("delete_event") {Gtk::main_quit}
  
  button = Gtk::Button.new
  button.signal_connect("clicked") do
  	puts "Hello again - cool button was pressed"
  end
  
  box = xpm_label_box("xpm/folder.xpm", "cool button")
  
  button.add(box)
  window.add(button)
  window.show_all
  Gtk::main


-------------------------
= 普通のボタン
これまでにボタンウィジェットについて見るべきものはほとんど全て見て来た。
実に簡単である。
しかし、ボタンを作成する方法は一通りではない.

{{image_right "button.png"}}
:Gtk::Button.new
  ボタンウィジェットを作成する.
:Gtk::Button.new(text, use_underline = true)
  Gtk::Button.newにStringを与えると,Gtk::Labelを内包するボタンウィジェットを生成することができる.
  use_underlineがtrueの場合,text中の'_'は次の文字の下線として表示される.
  もし'_'自身を表示したい場合,'__'のように'_'を続けて2つ書く.
  最初の下線装飾された文字はニーモニックと呼ばれるキーボードアクセラレータとして登録され,
  Altキーとその文字を同時に押すと"activate"シグナルが発行される.
:Gtk::Button.new(stock_id)
  ストックアイテムとは,"Open"や"Exit"のような一般にメニューやツールバーで使用される部品である.
  各ストックアイテムはストックIDで識別される.
  Gtk::Button.newの引数にストックIDを渡すことで,
  ストックIDに対応したストックアイテムを内部に含むボタンを作成できる.
  ストックアイテムについては((<アイテムファクトリ>))を参照.

次のプログラムでは,様々な方法でボタンウィジェットを生成している.
生成方法が実際のボタンウィジェットの振舞いや外観にどのような影響を与えるのか確認しよう.

  #! /usr/bin/env ruby
  
  require 'gtk2'
  
  Gtk::init
  
  window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
  window.signal_connect("delete_event") {Gtk::main_quit}
  window.signal_connect("destroy") {Gtk::main_quit}
  
  box = Gtk::VBox.new(false, 0)
  window.add(box)
  
  button = Gtk::Button.new("_Tex_t")
  button.signal_connect("activate") do
  	puts "activated"
  end
  box.pack_start(button, false, false, 5)
  
  button = Gtk::Button.new("_Text", false)
  box.pack_start(button, false, false, 5)
  
  count = 0
  button = Gtk::Button.new
  button.signal_connect("clicked") do |b|
  	b.label = "#{count} times"
  	count += 1
  end
  box.pack_start(button, false, false, 5)
  
  button = Gtk::Button.new(Gtk::Stock::OK)
  box.pack_start(button, false, false, 5)
  
  window.show_all
  Gtk::main

{{image_right "pixmap_button.png"}}
Gtk::Button.newで作成した空白のボタンには,ラベルやピックスマップをパックすることができる.
まず,Gtk::Box.newで新しいボックスを作成し,
Gtk::Box.pack_startでボックス内にラベルやピックスマップをパックする.
そしてGtk::Container#addを使ってボタンにボックスをパックすれば良い。 

以下に示す例では絵とラベルを入れたボタンを作成する。

  #! /usr/bin/env ruby
  
  require 'gtk2'
  
  def xpm_label_box(xpm_filename, label_text)
  	box = Gtk::HBox.new(false, 0)
  	box.border_width = 2
  
  	image = Gtk::Image.new(xpm_filename)
  	label = Gtk::Label.new(label_text)
  
  	box.pack_start(image, false, false, 3)
  	box.pack_start(label, false, false, 3)
  
  	box
  end
  
  Gtk::init
  
  window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
  window.title = "Pixmap'd Buttons!"
  window.border_width = 10
  window.signal_connect("destroy") {Gtk::main_quit}
  window.signal_connect("delete_event") {Gtk::main_quit}
  
  button = Gtk::Button.new
  button.signal_connect("clicked") do
  	puts "Hello again - cool button was pressed"
  end
  
  box = xpm_label_box("xpm/folder.xpm", "cool button")
  
  button.add(box)
  window.add(button)
  window.show_all
  Gtk::main






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