[ruby-gnome2-doc-cvs] [Hiki] create - ダイアログ

Back to archive index

ruby-****@sourc***** ruby-****@sourc*****
2003年 8月 14日 (木) 22:33:59 JST


-------------------------
REMOTE_ADDR = 61.26.70.211
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/?%A5%C0%A5%A4%A5%A2%A5%ED%A5%B0
-------------------------
= ダイアログ
ダイアログは非常に簡単なウィジェットで,ユーザへのポップアップメッセージなどに使われるあらかじめいくつかのものがパックされたウィンドウである.

ダイアログを作成するには:

Gtk::Dialog.new

Dialogのインスタンスを作成するとウィンドウを1つ生成される.
そのウィンドウの最上位にはvboxと呼ばれる垂直ボックス(Gtk::VBox)がパックされ,その内側にはセパレータとaction_areaと呼ばれる水平ボックス(Gtk::HBox)が含まれる.
vboxやaction_areaはGtk::Dialog#vbox,Gtk::Dialog#action_areaで取得することができる.

vboxにはユーザへの質問や,エラーメッセージを表示する((<ラベル>))などをパックすることができる.
そしてaction_areaにOKボタンとキャンセルボタンなどのボタンをパックし,それぞれのボタンに異なったシグナルを接続しユーザが選択した操作を行うことができる.

  d = Gtk::Dialog.new
  label = Gtk::Label.new("Dialog is groovy")
  d.vbox.pack_start(label, true, true, 0)
  d.add_button("OK", 0)
  d.vbox.show_all

もしvboxの単純な機能だけではあなたのアプリケーションにとって不十分な場合には,他のレイアウトウィジェット(例えばテーブルなど)をvboxにパックするだけで良い。

OK,キャンセルなどのボタンは通常action_areaにパックする.
action_areaにボタンを追加するGtk::Dialog#add_buttonというメソッドが用意されている.

  Gtk::Dialog#add_button(button_text, response_id)

ボタンのラベルはbutton_textとなり,response_idはボタンが押されたときのレスポンスIDを設定する.
レスポンスIDには整数を渡すことができるが,Ruby/Gtk2ではあらかじめ以下の定数が定義されているので,それを利用してもよい.

  * Gtk::Dialog::RESPONSE_NONE
  * Gtk::Dialog::RESPONSE_REJECT
  * Gtk::Dialog::RESPONSE_DELETE_EVENT
  * Gtk::Dialog::RESPONSE_OK
  * Gtk::Dialog::RESPONSE_CANCEL
  * Gtk::Dialog::RESPONSE_CLOSE
  * Gtk::Dialog::RESPONSE_YES
  * Gtk::Dialog::RESPONSE_NO
  * Gtk::Dialog::RESPONSE_APPLY
  * Gtk::Dialog::RESPONSE_HELP

{{image_left "dialog1.png"}}
{{image_left "dialog2.png"}}

  require 'gtk2'
  
  Gtk.init
  
  window = Gtk::Window.new
  window.signal_connect("destroy") {Gtk.main_quit}
  
  box1 = Gtk::HBox.new(false, 0)
  window.add(box1)
  
  button = Gtk::Button.new("dialog")
  button.signal_connect("clicked") do
  	d = Gtk::Dialog.new
  	label = Gtk::Label.new("Dialog is groovy")
  	d.vbox.pack_start(label, true, true, 0)
  	d.add_button(Gtk::Stock::OK, Gtk::Dialog::RESPONSE_OK)
  	d.add_button(Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL)
  	d.vbox.show_all
  
  	case d.run
  	when Gtk::Dialog::RESPONSE_OK
  		puts "OK"
  	when Gtk::Dialog::RESPONSE_CANCEL
  		puts "Cancel"
  	else
  		puts "else"
  	end
  	d.destroy
  end
  box1.pack_start(button, true, true, 0)
  
  quit = Gtk::Button.new("quit")
  quit.signal_connect("clicked") {Gtk.main_quit}
  box1.pack_start(quit, true, true, 0)
  
  window.show_all
  Gtk.main






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